commit 232a62f8cab59345f4d9d8902ce9eb4062d61317 Author: unknown Date: Tue Mar 2 23:26:21 2010 +0530 Initial Commit diff --git a/Include/System.Data.SQLite.dll b/Include/System.Data.SQLite.dll new file mode 100644 index 0000000..080c74c Binary files /dev/null and b/Include/System.Data.SQLite.dll differ diff --git a/Include/Tanshu.Common.dll b/Include/Tanshu.Common.dll new file mode 100644 index 0000000..118ec94 Binary files /dev/null and b/Include/Tanshu.Common.dll differ diff --git a/Include/Tanshu.Data.dll b/Include/Tanshu.Data.dll new file mode 100644 index 0000000..0b51f90 Binary files /dev/null and b/Include/Tanshu.Data.dll differ diff --git a/Include/Tanshu.Logging.dll b/Include/Tanshu.Logging.dll new file mode 100644 index 0000000..a1e6b01 Binary files /dev/null and b/Include/Tanshu.Logging.dll differ diff --git a/Sql/DB.sql b/Sql/DB.sql new file mode 100644 index 0000000..4b5823e Binary files /dev/null and b/Sql/DB.sql differ diff --git a/Sql/Initial Data.sql b/Sql/Initial Data.sql new file mode 100644 index 0000000..aa7e1b4 --- /dev/null +++ b/Sql/Initial Data.sql @@ -0,0 +1,1087 @@ +-- Insert CostCenters +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('5DCA3747-D6A0-45C3-A248-018331722D4A',12,'Namkeen',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('78E5F85C-D987-4788-9526-06A5A81DC063',32,'Special Deals',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('955AF7D1-E66C-497E-850D-211E6BDF2611',23,'Pickup Restaurant',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('B4C1D8C9-EFBE-4680-B153-39FD44FAAF10',31,'Waiter Restaurant',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('803E897A-2B3E-4AEF-9849-4293EFD473B7',29,'Ice Cream Basement',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('6E10D530-11EE-4374-BBC4-4700A9EEF27A',10,'Bakery',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('E742C6BF-E6B7-4D85-9AEA-4D30F98ECD41',18,'Ice Cream Ground Floor',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('4002505A-977A-432F-937C-54043A749E40',0,'Sale',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('CE98D3B2-CCE3-42C5-9FEB-5D7783E899DF',8,'Tandoor',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('394D79F1-22BF-4B57-9E04-6114DAA985B9',11,'Bhandari',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('506AD654-DDC2-45BE-AB33-62F2BD179869',24,'Waiter Fast Food',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('D9A17CE1-3A95-4AAA-AEF3-8B4F56F7636F',4,'Sweets',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('B30F4DD8-84E3-4A91-B8EA-8DCB0AF79698',2,'Indian',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('08E80158-0B18-46D2-924A-9375A71401DC',9,'Continental',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('C0DE6CD2-C04B-4FDE-8AF9-94D3242C572C',26,'Bhatura',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('F71BD61F-6EAD-4DCA-BA22-9860118AF2DD',7,'South Indian',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('2277DEEB-B43F-4CF4-BA71-B03AEEBECDDD',30,'Ice Cream Restaurant',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('7345731F-9635-4268-8A73-B482FA290718',20,'Mithai Counter',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('B82CA45B-DBE0-4FE9-BBF1-B7FBBA819B44',3,'Chinese Fast Food',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('037C1491-E418-4FC6-87ED-B83074BC6EA9',16,'Other Issues',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('019611CC-FC7E-4491-AB4F-B9D2006E0C7F',33,'Houdi',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('E3079DCD-97C6-444A-B0FD-BBD40CC8EE9A',17,'Outdoor Catering',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('A9BCF727-8909-4929-B56C-CDB238CD1437',15,'Bhandari WS',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('BFC247CC-3C09-4D2A-9EE9-D131A486B6B9',28,'Chinese Restaurant',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('FA338C74-0048-49BA-9F3F-D594F43D5C05',25,'Pickup Fast Food',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('3694F536-2A52-4607-AE94-E0F746BF6C0D',1,'Overall',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('A165A741-16B6-4D8C-AC78-EB2F9C1185E2',14,'Chat',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('93DD356F-9A48-4413-9210-ED899D792F2F',27,'286',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('CEB9F5D6-6750-47FD-9B83-EF1F648E13AE',19,'Stock Loss',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('955F847B-EFDF-4AFA-897C-F0BAF15284A3',6,'Purchase',DEFAULT) +INSERT INTO [CostCenters] ([CostCenterID],[Code],[Name],[timestamp])VALUES('243E3B96-16E7-4A8E-A483-F721BFC07DAC',13,'House Keeping',DEFAULT) + +-- Insert Ledgers +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('88A234F5-65DA-4166-A171-0139EC7B9BA6',28,'Chinese Restaurant Sales','X','75B28950-02AF-4939-87CE-C99653522B33','BFC247CC-3C09-4D2A-9EE9-D131A486B6B9',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('4DEDF95B-B5D1-460F-8C8B-0F7E64EC9602',3,'HDFC','B','57076758-28DE-48AE-A778-73E5E9F47837','3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('1BFAA689-EF6E-44B5-9E73-34451E577E1E',4,'ICICI','B','57076758-28DE-48AE-A778-73E5E9F47837','3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('C8C87922-5982-4731-AB9A-352D21F19EDA',8,'Tandoor Sales','X','75B28950-02AF-4939-87CE-C99653522B33','CE98D3B2-CCE3-42C5-9FEB-5D7783E899DF',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('AC73D06F-997C-44AB-9712-4E2CD8049357',2,'4% VAT','T',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('99D80D24-13C4-4C85-A7EB-67A29D154490',0,'All Purchases','P','99D80D24-13C4-4C85-A7EB-67A29D154490','3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('BE495981-2DAA-4472-BC68-6DD93BFB6C82',2,'PNB','B','57076758-28DE-48AE-A778-73E5E9F47837','3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('57076758-28DE-48AE-A778-73E5E9F47837',0,'Cash / Bank Accounts','B',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('82D65188-AC81-4355-92B2-762F2E519060',12,'Namkeen Sales','X','75B28950-02AF-4939-87CE-C99653522B33','5DCA3747-D6A0-45C3-A248-018331722D4A',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('48E10C74-9508-44CB-9D7D-7B71ABDAA289',3,'12.5% VAT','T',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('F7755AB3-9EFC-4278-BEE1-849E8FE37ABA',4,'4% CST','T',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('25ECCB39-7D75-49DE-8F47-87DC5D5326B9',26,'Bhatura Sales','X','75B28950-02AF-4939-87CE-C99653522B33','C0DE6CD2-C04B-4FDE-8AF9-94D3242C572C',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('66497F17-8096-46B7-A45E-8851BA4EA780',4,'Sweets Sales','X','75B28950-02AF-4939-87CE-C99653522B33','D9A17CE1-3A95-4AAA-AEF3-8B4F56F7636F',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('A072E791-082A-419D-8889-9387674A8297',10,'Bakery Sales','X','75B28950-02AF-4939-87CE-C99653522B33','6E10D530-11EE-4374-BBC4-4700A9EEF27A',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('3D1413EE-D3EA-412F-B762-BAE37BD503B6',1,'Tax Free','T',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('092A7308-8A30-49C4-B7C4-C3BADFC1659C',2,'Indian Sales','X','75B28950-02AF-4939-87CE-C99653522B33','B30F4DD8-84E3-4A91-B8EA-8DCB0AF79698',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('75B28950-02AF-4939-87CE-C99653522B33',0,'All Sales','X',NULL,'3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F',14,'Chat Sales','X','75B28950-02AF-4939-87CE-C99653522B33','A165A741-16B6-4D8C-AC78-EB2F9C1185E2',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('ADFB70E9-D421-44DD-B1A8-D1024C776556',7,'South Indian Sales','X','75B28950-02AF-4939-87CE-C99653522B33','F71BD61F-6EAD-4DCA-BA22-9860118AF2DD',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('F1837A92-C859-4459-A0C7-D7A1F6A24680',18,'Ice Cream Ground Floor Sales','X','75B28950-02AF-4939-87CE-C99653522B33','E742C6BF-E6B7-4D85-9AEA-4D30F98ECD41',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('BB4123ED-B880-4996-90DB-F9AACA183BB3',1,'Cash in Hand','B','57076758-28DE-48AE-A778-73E5E9F47837','3694F536-2A52-4607-AE94-E0F746BF6C0D',DEFAULT) +INSERT INTO [Ledgers] ([LedgerID],[Code],[Name],[Type],[ParentLedgerID],[CostCenterID],[timestamp])VALUES('EB818456-09C5-4E20-BF4F-FB02812A8008',9,'Continental Sales','X','75B28950-02AF-4939-87CE-C99653522B33','08E80158-0B18-46D2-924A-9375A71401DC',DEFAULT) + +-- Insert Customers +INSERT INTO [Customers] ([CustomerID],[Code],[Name],[LedgerID],[Address],[Important],[Phone],[Remarks],[timestamp])VALUES('F016CBAD-206C-42C0-BB1D-6006CE57BAB5',0,'Cash','BB4123ED-B880-4996-90DB-F9AACA183BB3','',0,'','',DEFAULT) + +-- Insert ProductTypes +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','Namkeens',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('DAC3B270-FA83-4096-9C17-118755B6B9E7','Chinese',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('A6D57F39-2988-4CFB-8564-118767E5E989','Continental',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('80EC988A-448E-4F81-B753-1B70FF8B233C','Kaju Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('28846C15-6391-48D4-A50E-2A40BA8156C0','Khoya Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('3769C9D3-C194-438D-AB18-2A665D5DB052','Tandoor',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('389A3E09-AC97-4C4B-BCE1-342D2CF991DB','Misc. Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('5E6522AF-99B5-4F7B-B561-352380C53CF1','Indian',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('AD0AD9D8-8E30-4986-8EEB-482DD446532A','Mother Dairy/Cold Drinks/Mocktails',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('A0D44EED-39C2-4030-9030-5C6F928D3D89','Special Deals',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('2314F948-0BAA-4B1C-81F4-6AC062CF39D8','Non Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('A04BAFBD-01FD-4EC8-9858-7E9368383009','Bakery',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('A6446E4B-6472-4B79-967C-AA1DC1265205','South Indian',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('B75B3C3A-4364-4B36-8DEA-C0C0247449B2','Ghee Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('381765CB-F018-455A-985D-D5EFB1ED1536','Chat',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('F76B54C6-21CE-450F-AC73-E1A3A43DAB43','Bengali Mithai',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','Bhatura',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('CC099265-97FF-45CA-80A6-F7BB189C18B7','Bengali Discount',0.10000,1,0,DEFAULT) +INSERT INTO [ProductTypes] ([ProductTypeID],[Name],[DiscountLimit],[IsForSale],[IsForPurchase],[timestamp])VALUES('4973B4EF-0506-4A44-8BC4-FA422334B041','Cash Charge',0.10000,1,0,DEFAULT) + +-- Insert Products +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('05B923E2-14E2-4B43-9862-000EA95FA1C9',50087,'Puri Chana Desi Ghee','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,53) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('090DCAB2-ACA5-4AE4-8501-00B7C9904B3C',13001,'Regular Ice Cream','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FBAA82A1-A34C-4BF1-AF17-00E8992D79F1',91,'Mirinda','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('38484FDC-ABA4-45B9-92B5-0255FE3F5B30',21102,'Paneer Makhni','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,40) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('24EBBD50-7C4C-4C1C-AE2B-02977FB4B6E5',5010,'7" Corn Feast','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('906197C3-41EF-4373-BFE3-02DA9F67AD75',9605,'Kaju Dryfruit Anjeer','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EB204D4A-306B-4A31-B3DE-02DDF64203BB',50121,'Ghee Roast Dosa50121','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('10DF80EA-E1E0-4DC7-B0A6-03062D7AE6FB',50011,'rabri','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A6D67CC3-AE4A-4CE4-948A-0315C4B89FE1',17004,'Dam Aloo Kashmiri Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,168) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6702156A-6605-418F-8F70-040C68018C67',9209,'Real Active 1l (1000ml)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',69.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('24A336CE-B9BC-4DA1-94C1-0420B0CE0A36',505,'Rs. 06','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',6.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7D547D01-EBB8-4929-9075-04E84B0127E3',6250088,'Coconut Masala Dosa6250088','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9D2BC06-CA2C-4033-A33E-05070C2C658C',9854,'Mango Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CC49033B-E765-4767-A712-050EAD84EFF3',50054,'vanilla double sundaes','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,13) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3276E1C4-0CAA-45D5-89D1-05133AB89BAE',27036,'Kheer Mohan','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('83E95C45-C5A9-4896-A720-05246A345561',14021,'Chana Kulcha','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,130) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('206FABD0-CE34-47E1-B747-0527B6064607',25056,'Gunjia','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1760) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('80662CDC-6619-4D02-A131-055068227996',25063,'Plain Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,908) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F658D827-17E4-4EDC-B459-0554E6D9AFDE',2003,'Chilli Paneer Burger','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C2C5253D-090C-470E-BC00-05BF7FE705A1',21007,'Butter Roti','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,491) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5A690388-3BBD-4BD2-9065-05DAD3673026',9856,'Kesar Pan Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('351D92AD-00F9-44FD-A50A-069835454023',50070,'Besan Laddu','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,610) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3B96C7EA-1FCA-4EB1-8BD9-06BC9FC855CF',6250087,'Coconut Rava Masala Dosa6250087','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('516A7A59-0BD6-405F-9DDA-06D940AC25D3',25043,'Patisa','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,809) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3DACF29C-AB6D-41A6-AEB9-06F388F7F192',25052,'Son Halwa','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',260.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,91) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2588B678-591F-4B9F-8AE5-07D422743EF7',23002,'Kiwi Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.56000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('52CF7428-E8C6-47C6-9D9E-07DBE1E3CA1A',1,'Mango Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.55555,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AE6E448E-96C8-4102-B468-0876D014B057',50099,'Chocolate Double Sundae50099','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('96EA8E46-7A36-4978-AC6D-087F3E9D1334',100007,'Chocolate Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,312) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('62D521A7-ACC1-4DCE-B110-088FFB8FDF37',9805,'Badam laccha','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('71F1FDFA-4308-4C0F-8E95-08C5CA0309A5',40,'Kashmiri Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',106.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FA280AB0-E89E-4791-AD27-090066F37D00',25020,'Rasbhari Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,51) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2C6974E5-73EF-4AA7-AA79-09281F31EABA',6250083,'Mushroom Onion Capsicum Foot Long6250083','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F45738D9-CF81-4BB1-B949-092A072C43BA',17003,'Mixed/Seasonal Vegetables','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,451) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('060EAB8B-B169-4986-9752-094BD866F4D5',9063,'Pineapple Cake9063','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',222.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1935) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BFADD353-41DC-4ED4-A038-0991A1E74FDB',27012,'Pista Pounj','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','3D1413EE-D3EA-412F-B762-BAE37BD503B6',115.55556,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('54988778-9042-4BFD-959B-09A30230DC2E',5003,'12" Cheese Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,50) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8EA4C0B1-ADD8-4B0C-B950-0A237DA53E08',990,'Dhakai Chat','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,132) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F3D14594-1B1C-4670-BCF4-0AED7E9393D7',25088,'Pista Gulab','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,23) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D7240E46-14CC-470B-AF1A-0B0EE38B07D9',50050,'Dry Fruit Pastry','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.88000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,827) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EE9F7659-8424-4150-BA2A-0B4373D2BB66',9560,'Mushroom Mutter','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,39) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('243902F0-5044-42DE-8580-0BB0DC11281F',23010,'Plain Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1A5F73C8-89B2-4430-9F9E-0BB1E9B863F7',50013,'kuttu ka ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,53) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8195ABC0-F4F8-477C-97FB-0BCC8C1ABC9D',50079,'Brick Rs. 75','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',66.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1E4DC79C-34DD-4AE4-AC7C-0BF770CBEAF0',50112,'Corn Chilli Cheese Toast','Plate','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('43B83F96-5E34-4833-BE2D-0C82606F5EBA',16006,'Singapore Fried Rice Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('45900046-778A-4B18-892D-0CE7C79F2E86',12014,'Create Your Own Sundae Double','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ACC43F4B-A998-4C1A-ACE5-0D671A6183C5',9205,'Ice Cream Cone (8)','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7856ECC7-BF6F-44CE-A1CD-0DB613C7F961',14018,'Masala Dhokla by Piece','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',5.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2E1783E4-1241-49DE-9965-0E1727BF68AA',86,'Wheat Biscuit','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',106.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,34) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('12EB861E-C13A-4ABA-9661-0E6CCCF5D236',9124,'Khoya Tasty','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1267) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C9C36A4A-B976-482A-83BA-0E8B78DFFF99',21105,'Navrattan Korma','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,107) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('38C0A2EB-C227-4039-B030-0EE0BA496302',13,'Mushroom Kadhai Paneer','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,151) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('76CEDE3B-28B5-4FF6-92B1-0F7A474E9732',9020,'Kaju Diamond','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',392.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0491BB6F-9617-422E-889A-0F7ABE883D39',9069,'Black Forest Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,701) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B3650CC-F3CF-43EA-8A19-0FDABF451992',50046,'x-mas desi ghee special','Bottle','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9F079F95-DE9E-4962-B54B-0FE784D3E8C0',4003,'Vegetable Coleslaw SW','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,35) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('95A5F019-F698-45B4-96B8-10469C7352D2',25147,'Mushroom Noodles','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9A09BBB2-2A6D-4B0B-A02A-1061E4322608',6250089,'Aloo Pudina Raita6250089','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8F15262D-8167-4FA0-A1FB-10B12704A405',25259,'Rawa Onion Masal Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F1F811A9-0F07-4636-A1F1-10C560884C51',4,'Chinese Thali','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',95.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,74) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('12AD318C-0A95-462F-AB4B-10D1D95B5859',9112,'Til Bugga','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,410) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A25B23C1-772A-48D9-B722-11735A04BA49',6250080,'Ultimate Veg.Foot Long6250080','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('290FA659-5D94-42AD-896F-11A9B53C6453',50103,'Anjeer Katli','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B60F300-7311-4E9E-ABD1-11BA3FD8F9EE',9099,'Kaju Kheer Kadam','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A50D4ED5-B57A-451B-A8EB-11F390D64582',9032,'Ratnami','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0FE3EFED-8A81-400A-9638-1203B9A48E70',50042,'apple pie pc','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',18.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B6E2F419-25F5-4734-8C61-120CD0FFB5DA',18006,'Butter Naan','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1419) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('32253355-A957-422D-B355-122F9BE81C09',21001,'Aloo Prantha with Curd (Value Meal Deal)','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,39) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('97BF36D2-8AB1-4658-9F4C-12A6AF812ECC',2,'Chana Rice & Raita','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,17) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('73F4E30C-1929-4E0F-8B1D-12FB40313A0C',54,'Services Provided','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6E13B4FA-E22A-440E-9A8B-1301094330F5',15013,'Tomato Uttapam','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DA8B721F-EBEF-43F0-BB77-139A8376D31D',21005,'Rajma Chawal with Raita (Value Meal Deal)','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,162) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1BDD6CDA-0F3F-4BEA-A681-13E2EF47FF5C',18010,'Onion Kulcha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4F0128F2-CDAD-4AC4-80EC-13FC1469EE01',12009,'Hot Choc. Fudge Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,28) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('246C61A3-7351-41B5-96C1-14C00F4D9FB3',50082,'Chana Kulcha Desi Ghee','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E7E03D4F-2ECA-4C6F-AE5D-1529E0190746',8006,'Pina Colada','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',59.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F68FAA4E-18E8-4B91-9533-1536E9BDCBF5',9068,'Fruit Pie','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('454ABBF6-9EF7-4482-ACBB-1548ED7CFC99',503,'Rs. 04','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',4.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F98E675B-C19C-4310-97B2-155A14D8771A',100008,'Dal Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('85E5F1D1-E672-487A-BBF9-1568EF66D789',9613,'B. Spl. Shahi Ghewar','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('184670BF-E35A-4316-AAE7-15E09AF57F7B',99,'Cold Drink (Pet Bottle)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,233) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4493BEBD-7DEB-46FE-BC17-15EB4FEA8DD7',14,'Kesar Ghewar','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,25) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A55C646E-DDDD-42F4-84A6-160D563ED197',25021,'Rim Jhim Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EF5D1E91-876E-4E56-B0D4-1678AE1A44C5',25058,'Lamba Jamun','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,37) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C66A558C-7859-46C2-8F88-171C15B929E0',50001,'Navratra Special Thali','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',99.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,157) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('89FB6E79-F628-4813-BD94-17374C7B0E28',100006,'Gurpara','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,30) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('565BDCD7-BEBD-4DCB-B0BA-17BC239C5422',89,'Chat','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,77) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('180CEE0F-2DDC-4006-8C94-180CD47D3C9B',19005,'Veg. Pulao','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,119) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9727BE9A-C8DD-4A0C-A861-1877CB21B868',6220,'Fruit Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',267.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BB0E722C-6B06-4FA6-94BF-18F13960C572',6250065,'Garlic Roti','No.''s','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AD61E004-83BC-4ECB-A041-1908DDE7A757',50124,'Coconut Masala Dosa50124','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('32E0F137-49B8-417D-A637-193900A93D67',58,'Snax Pack','Pack','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.56000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0C17CABD-7293-4087-8022-1974B2CB0413',6250112,'Cho chip Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.60000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,531) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9D09AF48-A4D3-49F7-90B9-19DF4503A22B',9610,'Orange Cookies','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('037B02EF-49AB-4FE4-8C2B-19E7B9AA1A98',6250115,'Mix Fruit Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',266.60000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,23) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3C67275C-5702-4820-9F0B-1A65ED679860',6250090,'Kulfi Shake6250090','','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('72DA40E7-2B0E-45D1-82A3-1A791EDEFAFB',50085,'punjabi puri desi ghee50085','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9597E868-919B-4619-A472-1A9B53411CA6',26029,'Kesar Khoya Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,37) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EEE0075E-647B-47B1-A5FC-1AE0BA5FB28A',26010,'Kaju Pan','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',380.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,531) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2D7A964C-EB8B-4735-8F8E-1B0C4F096B9A',9201,'Hot Tea','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,165) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CB8DFE89-DE99-44FF-8F78-1B53C8AFB69B',7007,'Fresh Fruit Salad','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BF85A0FF-B8E3-4981-808C-1B5D48A4194E',6,'South Indian Thali','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,125) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('177D1896-1DCF-491A-8E67-1B73D07A4579',15012,'Rava Paneer Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FB822A82-4ACC-4524-AA53-1B887087D493',52,'Mushroom Do Piaza52','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,66) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D730B980-13BC-40EA-A993-1C04EAD46723',50062,'fan cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',204.44444,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('06A01B80-3C9D-4443-B87D-1CF07A722014',16005,'Veg. Fried Rice Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,501) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2071DAB3-66D1-493B-B67C-1D61AA347DEA',25067,'Sev Badam','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CF8D30DB-3948-4EDD-B0B2-1DCF61C7F7E9',25068,'Plain Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,68) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0DCB13CA-EF73-4E59-B700-1EB1A369E736',9028,'Small Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.81000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20FA0747-C2BC-481F-A25F-1EED64FF0612',6250111,'Dry Fruit Sweet Mix','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E7D85046-7951-4081-BC0D-1EFDA95921A9',5013,'7" Mushroom Delight Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('89D7A32E-0BF9-4699-BCF0-1F69F5CFA4CD',11009,'Frozen Mint Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7B111A07-FEB8-44C9-94F4-1FAF62C7F177',50063,'Mini dal kachori','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('488BC81B-A099-4161-96DC-203240AC6EC2',9043,'Disco Papad Namkeen','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',84.44444,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('16158B46-1B53-44F2-A3FB-2052E472BA23',2002,'Veg. Burger','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,446) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E1A0146F-1F63-4CAF-A3DF-20A628FC4B03',30,'Litchi Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('81859BF7-3856-4DFF-AD52-2127A37AAC46',6005,'Extravaganza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8931E865-2725-47F1-BD86-215B8ADC477B',25008,'Firnee','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',18.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5E625250-75FD-4FFF-82F3-216E4CAF01AE',6250102,'Normal Thali Pack','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',83.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,441) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3DA042CF-536B-4FA9-B8DB-217E340571FB',6250086,'Coconut Uttapam6250086','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9F9A6992-6EBD-4DAA-B120-219F9526E065',6250081,'Chilli Paneer Foot Long6250081','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3F792DD0-78D3-45CB-B156-21C402E37C38',25007,'Chhoti Rasmalai','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1539) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BCDCB05C-7FE8-40A9-A5F6-21C88ADF9F49',9212,'Real Tomato 1l (1000ml)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',62.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('673966A1-5F77-49D4-AE36-21DFCFB80F65',3001,'Regular French Fries','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,81) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('601C44BB-ACD2-4F1C-A732-228C8A6E835E',6250092,'Fruit Cream6250092','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4F3AA06E-3833-4DEB-A7F8-22BA54E5CD28',50110,'Mango Juice','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CF7E5E47-97B9-45B0-AB4A-2315087D7289',25085,'Rasbhari','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,4196) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('74D70C91-9C95-4950-845B-23224E270F86',5017,'10" Shezwan Paneer Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',135.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5F138CCE-A06A-4782-AEED-23668246BE93',6250061,'juice','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6C20A0AC-EDD6-490B-BC2E-23AF53335023',61,'Kesar Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,609) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AD962E9A-21DE-4383-B8C1-23C03C7B95FF',5002,'badam halwa','Plate','A6D57F39-2988-4CFB-8564-118767E5E989','66497F17-8096-46B7-A45E-8851BA4EA780','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,42) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('60EDA651-7DA4-4B85-B3D1-23DCA1C0E287',51,'Paneer Korma','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3EE6122C-B0D4-4522-8F77-242F652020D1',6250071,'Mushroom Do Piaza6250071','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE943B90-C91D-419E-9A73-24C09CEA488E',22003,'Rasgulla (2 Pcs.)','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A9350E21-7F22-4D47-8D2C-24C46A0E960E',9121,'Kaju Pista Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8D9B2A0C-8E9D-4D3C-8DDF-258ADFF359C4',10000,'Chocolate Mud Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',293.33000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('901F33E2-BF22-400E-8A58-2628D38AAD37',9514,'Vanilla Biscuit','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',151.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('27A54FA3-2542-475C-AD9A-26C0BF524495',16008,'Dry Chilli Cheese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,224) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5980DC23-BE14-4D49-8AE3-270A1245F8E7',10008,'Maracuja Frappe IC Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BAAB2FA8-43FF-46E0-8AD1-271F3ED51907',15002,'Rice Idli South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,319) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E7CD8F06-8453-4035-A815-274C803E0450',22,'Tutty Fuity Double Sundae','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,55) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FA1CBC64-6929-495E-8C18-2757DB8C8929',25053,'Mixed Mithai','Piece','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7875) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C46DE8DC-5FCF-408E-A4F0-2777ECCD13AF',50077,'Brick Rs. 110','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',97.78000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,28) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0CB14DF8-CDD0-4467-A0FB-278887CA0944',4009,'Honey Pepper Cheese Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3BC7E62D-6CBA-45FD-B4DF-27C4F5027C25',50106,'Soup 1x250106','No.''s','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','3D1413EE-D3EA-412F-B762-BAE37BD503B6',10.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,58) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A9E6AF3D-36B9-4E0A-BFF2-282B1CAAA685',23018,'Choco nut cake 500 gm','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.30000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7C198AC9-6DED-4960-99CD-28F4AFD32615',8003,'Thandai','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',29.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2BC1A736-192A-48CB-AE99-28F60B696C0C',25003,'Raj Bhog','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',11.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1800) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BD64EB83-F8A8-4731-8A36-28FF200597E3',93,'Fountain Cold Drink','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.57000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,61) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EBC6B78F-2C0B-48CF-96E7-292023DC94AA',9044,'Masala Badam','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',600.50000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,144) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C41B08D6-4D37-4043-9639-2943466C6E9A',9804,'Dry Fruits','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',0.96000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,123) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E2AFB871-6260-4911-8A0E-29712A3EF497',14003,'Dal Chila','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('109B6F81-F845-49C9-937B-2A00965720DD',26028,'Koya Phool','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('48611F47-D906-4339-8E1F-2A47327B55A6',12002,'All American Banana Split Triple','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BCB6343B-18EE-4C39-A60D-2A78A54366C9',9664,'Mathura Peda','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',110.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0E6ECC7D-D85D-42DF-BBE2-2AB1EF638748',50128,'Russian Salad50128','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('60AB476A-2133-429A-8FE4-2AD84D7F1863',9014,'Besan Papri','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,207) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D39BF221-8231-4D54-85D0-2B63C8F5D599',9113,'Moti Pak','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('55F8C3B4-9031-4A49-9646-2B97C7FF2AA6',12000,'Dry Plum Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',169.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,67) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1120DDC8-802F-479F-A5C8-2BCACC89EDD4',5001,'7" Cheese Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,122) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F86B1D31-70CA-4107-9942-2C5CEEBB42C3',50123,'Coconut Rava Masala Dosa50123','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1C934DB7-06F6-4799-8DDA-2C6E0DB78C97',24005,'Candies','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DCBE739D-65EF-483A-A1EE-2C7413BD3874',27006,'Dil Bahar','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,93) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2E732DAF-070D-4532-AEB9-2CB743548A85',100010,'Til Patti Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,209) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3D3A6655-A9A3-4910-A030-2D30C161B6A3',25037,'Gaund Burfi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3BFB6CB8-BD30-4464-971D-2D487C08A599',27022,'Kesar Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B7DEE22A-6FC2-4437-B093-2D8C76083F42',6250066,'Mango double sundae','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('16048B68-BD62-4728-98E7-2DD714E0B955',9603,'Sugarfree Kalakand','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,566) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EF9B103F-7B27-442F-8564-2DFE1DBD3E3E',27001,'Badam Chap','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('97F99326-9C6C-4712-8974-2E77040A684B',50031,'Black Current Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',293.33000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('578D5D38-F302-4FBC-B470-2EC7F5FF4D10',50111,'Mix Fruit Juice','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AB0113F1-58A8-4EA2-9B0A-2F0FBDF19711',19004,'Chef Spl. Biryani','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,33) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9CAE517-7F39-4F86-B88E-2F28708F67EB',15014,'black forest cake 500 gm','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.30000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('43382587-FD91-4903-97A8-2F2E8FA30140',25256,'Veg. Cheese Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1BB6C112-FD44-45C1-9BC8-2FA0F2771DFA',14020,'Bharwan Gol Guppe','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,383) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2660E002-FE21-42D1-9D81-305926C41AC0',22006,'Kesar Raj Bhog (2 Pcs.)','Plate','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('659C5514-A084-426F-9368-3089CB2464B8',50109,'Pineapple Juice','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1835645D-7767-4B2F-9544-30B8D3EB8489',18,'Chander Malai','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,207) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E185738E-B5CA-4929-8F47-31605819459E',509,'Rs. 10','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('72BF989D-D26D-4CD1-8220-317C1A5EA943',9021,'Cookies','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1689) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DADF1C69-8DC7-4274-B582-31A93DEEAD1D',8001,'Badam Milk','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('76B32088-E020-40CC-876F-31BD6BB728D2',50036,'Black Current Double Sundae','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B0D250DE-C464-46E3-99DB-31C6244E6A64',25075,'Kaju Tohfa Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('914C61BC-6235-49EB-8100-325335519AB1',9023,'Butter Shortbread','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C31058B8-5212-44A7-B7C7-326EFA6A859B',9065,'Cherry Pie','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9BF8E72-1B8D-4582-B30B-32A69197134F',50116,'Ultimate Veg.Foot Long50116','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DF1566DB-9A3A-4FAD-B727-32B1E8A08001',14011,'Chana Bhatura14011','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,646) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('61A40CD2-98FB-44D5-8C35-32DD60B07EDF',25072,'Mini Kachauri','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,189) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('10201259-E44C-4179-A320-336F39384B68',9211,'Real Guava 1l (1000ml)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',62.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D0D9D435-4749-46BB-A76E-337501E85E82',13002,'Premium Flavours Ice Cream','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D799DEB4-10D7-4F58-B6A7-337FCED043B8',25087,'Phool aur Kaante','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7C5E03A4-805E-4E45-AE39-33DB72EC2755',23022,'Black Forest Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',23.10000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1406) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CA23667C-857C-47C0-A6A9-33FA77482CF2',7,'Bhalla Papri Chat','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1383) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B15282CD-B43B-499D-9DDB-340440694F6B',9018,'Badam Khoya','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('83D9AEE7-77FF-4F53-B0D7-3494562E8327',18015,'Paneer Shaslik','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('18DBAB51-86E1-459A-B82E-3495ED0E36A5',9040,'Kaju Ring Ladoo','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C9D2CA8F-F9FC-423A-95F3-34A8F52A4E11',17010,'Palak Kofta Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,54) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CC769C6C-073B-453E-B63A-354624C7960A',500,'Misc. Sweet','Piece','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,612) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A88DB953-9103-4027-97F6-355FDEE16167',9955,'Rogni Naan','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E428F087-E680-40E9-8F92-3610FE1C6016',100005,'Hot Gulab Jamun (Plate)','Plate','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',16.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,592) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('46C37F52-300B-4278-87B5-3619D2D4059E',14008,'Samosa with Chana (2 Pcs)','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,55) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F83F17EF-4C73-42DE-BBF7-361F31B8A507',50,'Paneer Jal Frazi','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A7E2BD1D-1BEB-4092-8E82-369EEB4D46AD',25041,'White Nariyal Burfi','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,605) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6EE3DD41-C270-4861-BE69-36BD6CD9E76B',9501,'Plum Pudding Weight','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5AA66AC1-81D3-479D-89DB-37BD50357EB8',50043,'Paneer Dilruba','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('48453EFC-5C67-4624-9B68-37CD01993E8A',5029,'10" Paneer Chilli Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',155.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('619D241F-79FF-448E-AB28-38C092B48A0F',50115,'Tomato Surprise Foot Long50115','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7854EB62-4771-4B19-AE63-3945577CEBC9',27007,'Lachha Bhog','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BAA31944-4511-406A-9DF7-394A625224F5',25070,'Plain Dhokla (By weight)','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,6007) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('071B2259-61B2-4B27-AD9C-394EE81164A7',23017,'Chocolate Brownie','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3BE16BF7-5EB6-49CA-BAB6-39A64580E99A',27005,'Chhenna Toast','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,476) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7AD04E09-B29C-4BFB-BF09-39D4F96B79DE',50094,'Kaju Sankh','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('66109FF9-88B3-4826-9535-39D55911B864',9554,'Chana Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',135.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B70898F4-C4E5-40C6-B11A-3A03F36ADE06',9226,'Butter Plain Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1DB211EE-F783-4EF3-9EBA-3A8180EBCC9A',9049,'Plain Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,539) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8A388F02-6177-4E0A-9D27-3A93075C8AB4',100004,'Honey Chilli Couli Flower','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,87) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E6AC2984-BCDD-462D-923D-3B9E2D2063B8',6004,'Primavera','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('82C98AAE-B4A0-4691-859B-3BCC1991695B',25033,'Dhoda Burfi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1246) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DDF73A9C-3F65-4A61-917C-3BF57F346623',6250117,'Idli Dhokla','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.90000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,102) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6433B4A5-8C72-4255-B169-3C672964026B',9120,'Gajjak Kaju','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',300.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3840602D-1DA4-416D-BBD6-3CA54F40A4DA',50057,'chana bhatura lassi','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CDA0AF86-A5C4-4D83-81A0-3CE3020C1651',63,'Real Juice 200ml','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('73224A54-82C7-4986-A6B2-3D11D8467A27',50119,'Mushroom Onion Capsicum Foot Long50119','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8650B580-EADC-42FC-8697-3D1CB2F74E12',6250075,'coconut rava masala dosa6250075','No.''s','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('536CAC66-8C37-4B0F-B558-3D382F4CBAE0',4010,'Extra Cheese','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E41A43BC-09F3-4E49-B61B-3DC7CF0DF792',100011,'Dry Fruit Vati','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',400.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,111) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('43AEEC9E-3EB2-442C-8F15-3E0B205156AE',9515,'Brownie Cookies','Box','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('56A0E56A-3E69-42E7-8630-3E32C9538BFE',50092,'White Forest Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',23.10000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,624) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A94CC3F8-F0AC-419A-B9C1-3E4C20CE006C',6250101,'Honey chilli cauliflower','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7B85B597-C2FC-4221-8D2C-3E7DE7822AE6',9952,'Choodidar Naan','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,14) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('00F7BBF1-878F-4311-B9E2-3EDB68F38225',25010,'Fruit Chat','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.78000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,35) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CFC3DFEF-6CCC-45B5-B829-3EDD03BD4B6B',50083,'Bedmi Puri Desi Ghee','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,49) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('68A315AD-F209-44F9-8286-3F00E8F5E110',68,'Butter Masala Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',63.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,30) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('71DEA75A-7742-4DAA-852C-3F104C743A72',25055,'Dal Kachauri (per Peice)','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5314) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B4D32971-A945-4394-9B89-3F1E64621753',25254,'Dahi Vada','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,78) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C2F5D93C-8EA9-48F7-8AFF-3F3392FCE868',50018,'Onion dosa South Indian','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('05A1EBEE-0984-4BF7-A504-3F802A1071AF',9098,'Khir Kadam','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,309) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4F53E0B9-A4E2-4D33-8AD0-401D3B280CD3',6003,'Mushroom Alfredo','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('358E4176-C26A-49C6-9FA7-401D82DCB083',27015,'Anurodh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BEBBE0BF-AD5F-42A4-8670-40603DD15FB5',18008,'Paneer Naan','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,91) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('716640C8-BE6F-4476-98EF-4112F541F6EA',27009,'Malai Chap','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,346) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1122D5A7-AD94-40ED-99B6-411749964A65',25045,'Karachi Halwa','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,240) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20C02041-BE64-4D08-A2C0-42093DB955A4',7003,'Fruit Cocktail Salad','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C1755FEC-0473-4135-8377-424B4A483148',25065,'Kala Gulab Jamun','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,3501) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A9AA0E8A-BD8C-4ACA-BBAC-425DE1C72DF5',17012,'Paneer Tikka Butter Masala Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,443) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EDEEECEB-6378-45A9-84BD-42C82A1DF738',14012,'Lachha Tokri','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,301) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5E581FE1-757B-4DA1-9ADD-4318C89C57C3',9801,'Cornflakes Mixture','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',106.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8E41507C-8882-4C63-980A-431CEC13812E',12,'Phainee','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',106.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,14) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('77B0DCA7-C9F1-4D26-A83E-431D2A0CF235',23024,'Butterscotch Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,721) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9137C2DD-26C5-4A4A-B217-43B213C861A0',95,'Can','Can','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,796) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('346BC829-476F-4368-B0E4-44211EEB499F',50038,'Choti Rasmalai Plate','Plate','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,220) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('95DAF07A-D4D4-47F3-A34D-442A86873399',6227024,'Pan Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E9748F73-3F66-47D4-B5EE-4430753C2FDB',6250099,'Extra Pao6250099','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,11) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F6E17097-F805-42AB-BD21-4479BC247AC5',11001,'Fresh Lime Soda (Sweets & Salt) Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,94) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CFA4A3CC-9EED-4A97-A75C-45B094AB78B3',15017,'Rava Onion Dosa','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AE30352C-4B16-4E7E-91F4-45EF754038F5',50125,'Shanghai Cheese Chilli50125','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20BF276C-3E0F-4E5A-91B5-465522C8EF1B',9606,'Khoya Tohfa','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,71) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('14FD5E2C-8420-41E1-84C0-46B897E4994F',5,'Khas-Khas Panjiree','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,69) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5A512402-C3A4-4A0E-8BB2-46DF841347B1',14022,'Puri Chana','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,98) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4C6CC2E2-FB6D-4BF9-9185-46FFAB4A4283',42,'creamy capsicum roll','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('89B98094-18A9-4EA7-BA9D-4701D15FCE7E',50035,'chota samosa','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,223) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('263CBD55-CC97-4C4F-8DD7-4749FB576753',50014,'platter','No.''s','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,193) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AC9F3989-5C7F-4558-BD9B-47C635010B3F',9017,'Kesar Khoya','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('16BC70F3-CB16-4770-94A8-4871D6E3320C',6250005,'bhatura extra','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B161BDB-8C37-4A89-828F-48984F2203E5',44,'potato cheese bun','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C827F6CF-50D2-4ECF-B97C-49367E0BF26F',76,'Bakery','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,238) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DBC0989D-B186-4DB9-89E2-49C3289D7CBB',27013,'Plain Sadesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F5DC8706-2142-4992-8B00-4A09E8951F19',9102,'Kesar Sandwich','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,113) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BE361B1A-F4C8-43B7-917F-4A86A4F633D5',50105,'vanilla tripple sundaes','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3B8CCF53-C109-4D4F-A0BC-4A8B7BAEEACA',25035,'Standard Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('83117B7D-531E-47B8-A424-4AA58B9D4F4A',9101,'Tiranga Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A97DF2E2-400A-4005-96F1-4AA6B1242E54',50010,'Desi Ghee Paneer Jalebi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1126) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5393703E-CB8E-41B7-B098-4AE2F61618E1',6250072,'plain milk','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F61B0E6C-F4BC-4E74-9E23-4B102F196499',23021,'Pineapple Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',18.60000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1577) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D2134EE6-2132-48DF-8AFF-4B141AFD2372',17001,'Dal Makhni Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1884) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E5822E7-9514-43A2-AC88-4BA9863AE157',43,'paneer roll43','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('708164B2-B828-49C8-B603-4BCA364C786C',9602,'Two-in-One Tart','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.44000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B82C7052-1968-430C-9D57-4C3BBF5881EA',11007,'Hawaiian Dream Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('25041212-45B0-4B93-B07B-4CB6B8343A0A',25080,'Moong Dal Burfi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1197) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('525353D6-0C4C-48E2-8347-4CC2AE4B8701',18002,'Missi Roti','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,652) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E7217037-B705-47DF-A659-4D4579577D85',6250084,'Onion Capsicum Foot Long6250084','Bottle','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6FD4C213-6AC1-4ABB-A496-4D473E8B3316',17015,'Kadhai Paneer','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,927) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('24C89F0D-3479-434D-811B-4D814BAD4C3C',50060,'Bisleri Water','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,638) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('51458104-7A70-45CB-9B14-4E2A19163784',6250105,'Cheese Piza 10"','No.''s','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',100.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,35) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F8CCB960-EF36-4B1F-94EF-4E2CF3A37A07',38,'pure desi ghee cookies','Pack','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0BFC5999-0175-4B8D-A98A-4E4789259456',9009,'Chocolate Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,22) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('88535F2E-091C-4A66-8FC9-4E8993170734',9108,'Chivda Mixture (Chidva)','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,40) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FBD11E5B-9A73-4DF8-95A4-500FD51F5814',47,'Paneer Do Piaza','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,49) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B2A24A3-61FE-4460-8672-505F7CC86152',9609,'Meetha Samosa','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F92DA01B-963C-4518-93C6-5084FC9810FF',9067,'Apple Crunch','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('927604E4-A6D8-4ED7-A1D5-50C0011C02FF',23031,'Chocolate Pie','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CDA2BCB3-2078-40FE-A7D6-50FEDF7678FD',25253,'Paneer Cutlet','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A8E45530-125D-4460-89B3-5135AC6D124F',19001,'Veg. Biryani','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,234) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('555AF498-2552-46E3-991F-514DFEACF6B2',96,'Bran Bread','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('22CB87B1-027E-4E2A-931B-52DFB1001878',50073,'Cold Drink Rs.25','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.22000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('40EB48B5-4E74-4342-A3AC-5380CB4373D5',50140,'a','Bottle','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C0118296-87E1-4F81-BEE4-539ED2EB8EC9',21101,'Dal Bukhara','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1290217D-0E88-4C55-B76A-53F0C1292D3F',15003,'Rawa Idli South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0AB05592-D108-46EB-85F9-54BCF936ADCE',50114,'Mushroom Delieght Foot Long50114','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('155843BE-7D71-489F-A1CD-55418597F796',26011,'Kaju Strawberry','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',300.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BF8D37F6-02E1-418F-B58B-55A5F8532839',22001,'Hot Gulab Jamun','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3483) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F13BA114-8D96-46EA-A198-55D7CB89A008',37,'Chocolate Chiffen','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7BCE0BFF-CFCE-40AA-A760-55DFDE7DBEBA',25004,'Rasmalai','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',13.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6867) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C23C997D-1B09-4CD9-A9FC-561352E2F09E',23029,'French Bread','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CCBAA43D-2F70-4378-80EC-565A637115CD',25047,'Milk Cake','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1587) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5F502885-4B9B-41A2-8B20-566954E09FBD',5009,'12" Simply Veg','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,45) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('81E9EE53-A5A3-4835-85C3-56C2B8D41F17',25257,'Bengali Special Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,11) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3B1FBCF2-375C-4923-A21C-56FC6268E007',9006,'Pineapple Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FE930BD9-BC86-48B9-BD8B-571CC2F62D2F',6250062,'Gravy6250062','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3DF815F0-5CA7-4634-895A-57672AD28578',32,'Lassi Masala','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','3D1413EE-D3EA-412F-B762-BAE37BD503B6',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,115) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('29E434DA-272D-4CC2-B9F6-57E30EEA82F0',25032,'Bekaneri Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('153817B4-6F02-408A-A763-583ACA5B6392',6250094,'onion salad6250094','No.''s','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('12324C3A-2CD8-4AF7-BB44-58895E733403',629124,'Badam Bati','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('03267721-1F98-452A-BA6C-59519B809C42',15015,'Onion Uttapam','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,35) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('87104E38-9522-464F-AE30-59902DCE4636',71,'Single Chana Puri','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3172F414-D662-48F9-A79A-59B05F63C2B0',6250107,'Khoya Ghee Mix','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ECF00AB2-4A5B-4099-A1D6-59E9724D0356',8,'Paneer Uttapam','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,22) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('58C8E82D-C022-4831-8E12-59F22825EB07',6250069,'Shanghai cheese chilli6250069','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE54B0CA-2B2E-4E58-AA99-5A8AFE6275AC',6250059,'Stuffed Tomato','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DFCC7AC1-92FF-44C2-A752-5B11405F7D6B',50090,'Sambhar','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7F43C869-CB35-45A9-B771-5B1DEF8E1639',16015,'Gravy Chilli Cheese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,222) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0B582CE5-99CF-4D9E-8AB7-5B40D7AFE73E',520,'Gajra Kali','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B9947684-7CBF-4A68-AB4C-5B6FA37A1690',21109,'Boondi Raita','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,135) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A159B145-D53D-4247-B233-5C0ACE9AEEA9',26012,'Kaju Anjeer Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',280.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AF9AA4A2-DC0A-4368-A5CE-5C374A3459C7',22007,'Ras Malai','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',16.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('786F63B3-9E30-4EF9-9B34-5C4A8E5B669C',6227,'Eggless Pineapple Cake500.gm','Pack','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.30000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('40F3CE72-1DA2-46D7-AE0D-5CBB65899094',16007,'Dry Menchurian','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,149) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9B999E00-BF65-465D-84CB-5CF159C9E652',50017,'Mango Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E322D144-723C-4AD2-AA02-5D2131013396',9200,'Hot Espresso Coffee','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,123) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E827B75A-9170-49F1-9F13-5D2F12EB151C',9095,'Bournevita Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1F3AF1FD-4C12-4B5E-B435-5DE75480D311',26017,'Badam Pista Dilkush','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',450.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F3256AF3-6705-412F-A207-5E161CC34CCC',50129,'Kulfi Shake50129','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D5A6F3E4-D30F-467E-ACC3-5E42428C23E2',504,'Rs. 05','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',5.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BB69D363-ABDE-4D02-BD22-5EBF1FE7BEE7',9207,'Butter Scotch Cup','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',11.55556,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('031F2E7E-5211-4E36-B854-5EFAF16638BD',27021,'Sandesh Roll','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('25D38246-C4C2-4057-9891-5F2CDDF9F390',100012,'Gulab Chikki','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FCCFC3C0-66F4-4A3F-8457-5F5461138FF7',50133,'paneer roll50133','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1B877646-A7F9-4082-AB8F-5F7F4D004091',9033,'Moti Ganth','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('43BB5B91-3A63-4DA1-90E6-5F836A6F97BF',5014,'10" Mushroom Delight Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',155.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4BEFEE39-974E-4B2B-A3E7-5F9FEE5D6FF7',25027,'Moti Choor Dry Fruit Ladoo Desi Ghee','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,3529) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C0FC2EF2-219B-4D11-B90F-5FD94F6F7C6F',14015,'Pao Bhaji','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,226) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0B7F7611-173C-4F20-8A50-6005AA61898C',75,'Indian Snacks','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',48.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FDF76B0A-8592-4788-B127-60B12E1D3DFB',502,'Rs. 03','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',3.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('146E7B14-BCAB-4EE4-AB6E-61D32F9E6594',31,'Paneer Fried Rice','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B54026C-8AF2-4FB4-BB48-61D99BFD2F70',23026,'Mocha Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('64D6DF20-8F19-4895-9920-622B2AECF594',25022,'Banarasi Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',110.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('24E9C797-8C16-475C-BC8B-6237845318BB',9013,'Chhota Samosa','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,171) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('954E2096-6827-4C82-B3E2-62BE893C7472',27023,'Pink Rasgulla','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,315) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1848C974-1F8F-492D-82EA-630060B08FF3',6250068,'Mango double sundaeMDS','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('625B20CC-64BA-4E7F-82B3-631D2EDAB4D8',23,'Jeera Rice','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,154) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EAB4A0AF-3C80-4AC2-B534-6333357AF83F',50037,'Chinese Idli','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,47) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CC474A33-9409-4142-948C-635163718D43',50075,'Brick Rs. 70','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',62.22000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FD018853-350A-4EF3-A195-6358D6F95700',27032,'Anar Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4F61DD30-15E4-48E2-B061-639E2E715D3D',9119,'Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,320) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5EC143B8-8113-42E5-8253-63B9D7B8D160',201,'Lic Lolleez','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',4.44444,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E1250B0D-A175-4B70-9CFA-6409D9E120A2',23019,'Chocolate Tart','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B76873DD-B1EF-44CF-9DBB-645D7BBF4888',25150,'Veg. Chopsuey','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,93) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A9BD7E42-45B6-41E5-861D-6476C4FF4208',152,'Mountain Dew','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0AC9A085-406B-4959-9CDE-648F1A12D7B0',50003,'Mixed Platter (Sweets)','No.''s','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,25) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3D480E50-E524-41B3-81B7-64A415B0FF50',3002,'Large French Fries','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,56) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('61CF3569-E042-4B4F-B6F8-64B94C93AA9E',6250097,'desi ghee pao bhaji','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F0230CDF-F302-4A86-962B-64CE1C4C17ED',18004,'Pudina Lachha Prantha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,100) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6E51435B-04CA-4E73-A381-64DA81236B36',27020,'Wark Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B6800AA-85BA-41EC-A5F8-65A14516B988',9035,'Pista Bahaar','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('04368148-9D5B-4E9B-A4FA-66D5B0E0FCD1',17005,'Chana Masala Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,422) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E3425FD3-9E14-4C04-970F-66D8E67CE2DD',25086,'Pista Bhog','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,222) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('98AD5919-B3F5-4BEE-8DC9-6706381694B3',17008,'Mushroom Masala Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,214) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('341539D2-60E8-4B16-BDBB-673B36C573CA',25149,'Rice with Gravy','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,46) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('72B8B3A0-A1E4-43FF-B771-6742B6FDAFBA',9516,'Creamy Chocolate Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('05CCF4D6-12EC-47CA-AA14-6773071D3188',5025,'7" Extreme Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',105.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,49) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6D3961AC-FB5B-4456-B84F-67AEA7D9FA1D',50134,'veg roll','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4ECEB956-87A7-4A70-9F36-67E93C262C48',5022,'7" Deluxe Margarita Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',95.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,11) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3E49F5BD-D5BE-4030-9313-6830C0F596AE',25074,'Kaju Kesar Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,191) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('53EF69F0-8899-4AAF-9003-684918D7459E',50120,'Onion Capsicum Foot Long50120','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('484ADDBC-7CD0-49BB-8EA1-68DF18C693AF',9,'Cheese Menchurian','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,54) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('87846F84-460E-4743-BFAE-68EDB8CFCC3D',6250074,'coconut rava masala dosa6250074','No.''s','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('25DF3A78-D770-4EB8-AF9F-699DC4003F4A',15010,'Rawa Plain Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('02FA0170-CF31-4BE6-B566-69A2A4A5F4D7',22016,'Kamal Bhog','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,286) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EFD0AAFF-D7FF-4287-8825-6A7A56580554',9232,'Clear Soup','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('34AD6153-70C4-46D6-8C84-6A82CC78AAB3',14009,'Tikki (2 Pcs)','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',32.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,363) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('03E7EBE3-ECD6-401D-BE30-6A85456A2CC4',33,'Lassi Sweet','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','3D1413EE-D3EA-412F-B762-BAE37BD503B6',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,660) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2ED0EAA4-3C2F-4709-B1F5-6A8BF541AB36',5007,'7" Simply Veg','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,135) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8A53096E-6221-4551-B89A-6B5E0722DFBD',26002,'Kaju Dilkush','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8C286E98-E274-466F-ADF1-6BBB43A75E0A',6222006,'Kesar Raj Bhog KRB','Plate','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('09E4E970-1C4B-4DFE-A091-6BBEA7CD47E0',100003,'HI-tea','Pack','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D4FBC1BB-270C-4338-B049-6BC13779DF7A',17009,'Malai Kofta Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,363) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('126DAA5E-2FED-45E5-9500-6BDDCAD3B747',9962,'Sabji Kali Mirch','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('09B07F51-C6F2-4BA5-9F88-6C0C39C630B2',9039,'Rich Cake (500g)','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E329F992-3898-4C4B-B3CF-6CD41722BD2B',16010,'Mushroom Hot Gravy Sauce Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,11) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('99061937-5B18-4AB1-9318-6CE5CBCE154C',1031,'Gunjia Phool','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,11) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0A74D97E-D143-4C30-913A-6CEDC0CE9CB3',16002,'Hakka Noodles Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,145) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FB77075B-5EDD-43D2-BB86-6D908622458C',23004,'Chocolate Truffle Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.50000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1021) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A521EA4D-7CC1-44C3-9426-6E3542618018',26033,'Khoya Pudding','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('23483E2F-735C-4050-9219-6E44FF3F6135',1030,'Pista Cookies','Box','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E4D30B14-4D61-492A-9D67-6E5520D78E2E',28,'Nut Cracker','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,72) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6D34E77D-2812-483E-AC6F-6E7EF1FD62A9',9041,'Namkeen Green Mattar','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.81000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8212E429-0F2E-4DEF-92D5-6EA18880C164',9850,'Kaju Anjeer Cake','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',400.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E30883A-9147-4B29-B55C-6F5709B1AB86',11002,'Cola with a Twist Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B629CF9E-63F8-4767-9E12-6FA22136C442',5008,'10" Simply Veg','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',135.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,105) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EF7CC9BE-EC9F-41CD-887D-7045437F58A3',17002,'Rajma Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,204) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('133069D6-4E0E-49A3-B818-706A44A86C7E',9064,'Fruit Tart','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7B9855A7-1AD6-4F26-8A4E-70D3986531FF',6250093,'kulfi shake6250093','','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5AB075A1-C7AD-4642-A921-70DEB2E8F935',5018,'12" Shezwan Paneer Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('36D8A16C-F5F0-422A-BC3C-70FA1CF68FA6',100015,'Spl. Chocolate','Kg.','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','3D1413EE-D3EA-412F-B762-BAE37BD503B6',390.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1EAB1BCE-6139-4CD1-8AA7-712A359A0A05',26034,'Anjeer Roll','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,82) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('57FB0549-A2FB-44E1-B269-715021D9BFC0',18012,'Aloo Prantha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,85) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('655F9F5B-939E-4C6D-8BAE-716FB50D739B',9096,'Bournvita Katli','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F1525307-CDD1-423F-8FEA-71820A93EDA1',50076,'Brick Rs. 115','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',102.22000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('80187328-E148-4257-A1B1-71C37FFC8AB4',25031,'Khoya Katli','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,473) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C29C10B4-3670-4986-B61A-727CF4C234B2',6250103,'Deluxe Thali Pack','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',103.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,497) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7384D80A-3BFF-45D5-84EB-727D42F2CA1B',100908,'strawberry Cake 500 gm','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','3D1413EE-D3EA-412F-B762-BAE37BD503B6',133.30000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',6.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('81E97E32-2ADE-4DE0-AA44-72D16CC2AD5E',12010,'Hot Choc. Fudge Triple Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7997C4FB-75B6-48CD-BE60-72DAC6DD3177',50021,'Tikki & Chana','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('140ED534-2B17-4AD0-84A8-72F3012396A9',50078,'Brick Rs. 60','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',53.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EDF0D344-A8D9-4923-87EC-7381DE931842',9116,'Kaju Roll','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,279) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('56ECE018-F6CF-485F-A861-73B607DB5681',10001,'Chocolate Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('94EAAD34-3CE8-40AE-A212-74087167B882',50093,'Ice Cream Cone','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',18.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,315) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D1E0FA8E-42DD-46CD-9207-74506B1BE29C',9852,'Pista Sandwich','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,290) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5AACD8ED-6542-4B1F-9EFD-74AF2F11275A',8005,'Mango Smoothie','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E2E213D7-2673-4E59-B49D-758C1E923B75',9853,'Kashmiri Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',110.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,749) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20F109EC-0994-48C0-9A2E-75B821D243B8',50040,'Paneer Achari','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,45) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E2E547CE-F920-433F-BA65-7603EFA2F72A',9004,'Mango Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('409D084B-393B-4ABE-BC8E-760A2DA83DC6',50033,'Extra Puri','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,28) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9C4F08F6-E460-4CE9-9D3B-7638AA3C949B',50030,'Kesar Phainee','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1BEB34AC-C202-43F4-9D06-76867C62008B',27024,'Feeki Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ED785D91-4CE3-4A04-95F1-76886FE9C93D',25252,'Chana Methi Paneer Bhatura','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CDE7A9E9-748C-4681-9BC3-76D5B5A96A4D',50084,'punjabi puri desi ghee50084','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B8D4E123-92C2-4195-A6CB-774C8065A790',21008,'Pineapple Raita','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,172) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C76C78E8-95E1-474B-9E18-7750CB19C714',25261,'Black Current Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2F73E747-C2F5-4A3C-8799-77BACE4D7E41',1001,'Cream of Tomato','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,69) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('118436BE-45D2-4E8C-8768-77BDFB3E78AC',50008,'Gobi Samosa','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,382) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('15665A72-7AE7-4D88-9417-77E4D91AEB88',9214,'Real Juice 200ml (Rs. 15)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,579) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('276026C0-B55E-4C5D-94D0-78010F98827E',27002,'Badam Phool','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4530B1D6-F92F-4370-A88F-78411ED135A7',56,'Peanut Gajjak','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,201) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EA115E21-6EF0-41FA-903C-787C2B25185B',87,'Kiwi Pastry (Discontinued)','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DF80ADD7-1BD9-4FF0-BA5D-797D4A3A8830',25057,'Kanpuri Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',110.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,2786) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CF63BE0F-7CC2-48E2-9C25-79C27C466808',9222,'Diet Pepsi 250ml','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',11.56000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B295CC6E-F94A-4C6E-A35F-7A74317D0181',50071,'Badam Chikki','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',400.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('91E4DF4B-9DF1-4E30-B8AF-7AC6EE118863',50122,'Coconut Uttapam50122','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6C9544F6-9140-4AA9-B851-7B65C3306388',6007,'Stuffed Crust','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F3EA527E-8B36-4D0D-AF84-7BC141366146',27011,'Pista Phool','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CB0907DB-02E1-4F4A-BBEB-7C08F5A4CA21',10006,'Mid Night Beauty Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('320125E6-75F7-4606-9E73-7C1BC17670F4',9513,'Chocotip Cookies','Box','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('62E75A24-72C8-47A4-9366-7C55B4254580',49,'Cheese Tomato','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,218) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B5D40070-4821-481A-992C-7C5BE33DB0A5',9858,'Badam Milan','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',450.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B1A0D1C7-DEE1-449A-AE70-7C8A26BD942B',5021,'12" Shezwan Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('635A026A-4ACD-4351-B07F-7CBCA4F72B9A',25078,'Bikaneri Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,398) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('12A2824B-2308-4DDE-886F-7D078C657577',9008,'Vanilla Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('410DB88E-148A-4689-A65D-7D7A2ABE59F0',21002,'Onion Kulcha with Chana(Value Meal Deal)','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F0380B49-1E75-4709-A167-7D7E724444B3',26005,'Kaju Samosa','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,51) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('882F4EF1-D39F-4952-A8F6-7D85ABF17BE7',2004,'Jumbo Berger with Cheese','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',49.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,53) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A7DB0D18-B0D1-42D3-AEAF-7DAC358AB105',74,'Namkeen','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4715) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CF1EA16A-77E5-4287-A760-7DC89ABDE9B3',22004,'Gajzar Ka Halwa','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,366) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('58E02106-F4D8-46B3-96AE-7DF033C87A14',17,'soya chanp','Bottle','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',69.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2A9A74E1-4AA9-4F45-A13B-7F3CBFBA5EB9',12011,'Create Your Own Sundae Triple','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F13CBBF4-2F35-4CFA-8E29-7F520D1BB4D7',9204,'Strawberry Cup','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,33) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5D17C7F4-BAD9-45D0-AAEE-7FA7A317B7EB',50056,'Gravy50056','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3324CC70-6DD2-4F09-835B-7FB19959D253',20002,'Deluxe Thali','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',95.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,390) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('086730B1-14E6-4081-9C32-7FC265D824C0',14013,'Matra Kulcha','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5270B403-5AE9-4F12-89B6-7FC4512FE8EF',50096,'Aloo Chips','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.35000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,910) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2EEB5142-BCD7-4C47-A84C-8010385C0A80',48,'Paneer Methi Malai','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,410) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C7DF2F34-B941-4ECF-894C-801089C4C3B0',18016,'Paneer Malai Tikka','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E5CD9C89-9C2C-4063-B080-802F82619227',26015,'Badam Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',430.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,47) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C08AAC04-3F1F-4D53-9E70-806236584B09',6250082,'Tomato Capsicum Onion Foot Long6250082','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C7305B00-20DC-4A5A-BEC9-80BF21588BB3',23023,'Mix Fruit Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D4F57D66-2EBA-4692-AB88-80DE8DDA049C',50104,'hot milk plain','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6ED01949-F7CD-495E-9A79-8171C29CA569',25061,'Khatta Mitha','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BC4A05C2-895A-4496-BC4B-81A580D3C585',27014,'Anar Kali','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE67A574-F56D-4706-97DC-8233F7B78A3F',50044,'Aloo Bedmi','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B47BB292-7B9A-459E-B24C-830298B2A058',9117,'Shalimar Gur','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E0AB9D2-442F-4A71-880C-831C44F7DAAE',27025,'Karela Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,61) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('48D6D2A6-7BFA-47D5-88EE-832EA243DFC8',25044,'Gajar Ka Halwa','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,848) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('36AAF5CF-E978-4F9B-A77E-833B896533D5',9011,'Moong Dal Fried','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,61) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('866301E8-6BC1-4D2A-B2DD-834C3044F30E',25039,'Nariyal Burfi25039','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,255) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('18FECA9D-9907-4ED8-9F13-838FC060D53B',12013,'Brownie Triple Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7975C77B-EFA4-4957-A30E-839257B9C123',25258,'Bengali Special Uttapam','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AFEA8407-7B11-4956-8D27-83D502F1F28E',3,'Besan Pinni','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,355) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4A2DA868-2DCE-41A8-9AD4-840C1F9951A1',98,'Diet Pepsi','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,999) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0920D43C-67AC-4D64-9012-8445B23425E1',9100,'Special Rewari Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,17) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('91CF59E5-6A82-4680-B4D6-846630045330',16014,'Gravy Menchurian','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,860) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B1F73C2F-69CD-4264-B83B-84C730E840C9',26024,'Dry Fruit Panjeeri Ladoo Desi Ghee','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B3670E8C-9072-4BAC-9DC2-84FE3138D72F',16016,'Mushroom Chilli Gravy','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('53B84363-8092-4DFC-AA7C-8510F4688AF7',25046,'Malai Roll','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EC56D609-3B4A-48EF-B5B8-851C9F620E73',2121,'Extra Pao2121','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7FAE929F-1250-4B47-BD08-85828E765568',100014,'lunch','No.''s','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.50000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2ACE5E65-6C88-446C-B9BC-8585122A23AF',9216,'Hot Kesar Milk','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8167BCA2-12CF-4887-BB66-862EA601895A',5033,'12" Real Italian Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6F9B4B5D-3837-4597-A86C-86F85271B520',4006,'Veg. Delight Grilled Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B7DF7670-D609-49CD-AEEE-870749D2FF4D',50005,'Extra Bhatura','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B3A45979-C45F-4077-B0DF-870E029A1BAB',100001,'Dry Fruit Platter','Pack','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,328) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A894B126-B3B6-4693-923E-876A7A8A8E6E',77,'Continental','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B2A7E5DC-417B-41D7-9AAD-8840F0290040',27008,'Malai Bhog','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C4C82A3D-35A4-4E1E-9342-884327D4ADCD',5016,'7" Shezwan Paneer Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BA0945AD-BB09-4AA1-8619-885DF65D3464',23008,'Black Current Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,8) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A313A72E-E3F8-42A9-9084-891F2268C43B',50142,'Gheeya Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,59) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('17239ED9-05E9-4091-BFD5-8989A85BD2DB',6250052,'Single Scoop Ice Cream','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('35C82AC6-9FFC-4641-BDC1-89BBD63A11B1',10005,'Sunset Glory Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7FCDE9AE-113F-4E85-A244-8A59D1A4A5D3',9951,'Paneer Irani','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9C48D0D6-2F00-4CED-9407-8A84AC07A803',50029,'Mixed Packing','Piece','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6FA61AF1-91B1-42E1-91F0-8AC7853D23DE',5036,'12" Tandoori Paneer Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('363B5791-852A-4104-8EA8-8B6EECA6ED8D',9060,'cheese Patty','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,184) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8EC4E346-BFD0-445A-9A8B-8BB1F813293B',9114,'Rajasthani Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4376462E-7619-4A30-B59F-8BE5EBC2DD53',27030,'Chenna Murki','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,2293) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('479A93E6-E865-42A0-99A9-8BEB5F233B74',50067,'mesu pak','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,22) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('95A6BA27-B281-4B73-B3CB-8C29C8F829E1',5031,'7" Real Italian Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A08E6AD8-8A84-42EA-BA7B-8CBF263CE448',21004,'Paneer Naan with Gravy (Value Meal Deal)','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,410) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DAF9DCDA-6536-4A11-874C-8D089F3D5833',9061,'Shahi Samosa','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,415) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('86421B71-1BE4-402E-BCB2-8D8D0C82DF52',17011,'Methi Paneer Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',77.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2E863D68-B764-4B51-B861-8DA9037FFF89',50131,'dal vada','No.''s','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.89000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,633) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('808E3482-FC58-4111-A843-8DD1411AE79A',9802,'Chameli Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2EF06B1A-4489-4281-A11E-8DFD0904C42F',9224,'Ice Cream Cone (18)','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',16.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('47072F81-D0F4-4C9C-BA5D-8E0F293D390C',50074,'Brick Rs. 125','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',111.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,24) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AD34AB89-6988-43AA-B3DE-8E18B4A517A7',9005,'Orange Surprise Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('46CDE7A9-FFD0-4B6F-AF70-8EA25671EB71',6225010,'Fruit Cup','Piece','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('205B2EFB-4137-472E-81A5-8EB71D38AB1D',9001,'Banana Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('85D61FE2-5D4D-4D75-85DE-8ECD59E12DDE',9859,'Corn chilly cheese toast','Plate','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3EACAB00-1553-42A2-BEF5-8ED6E333F3E8',9213,'Real Pineapple 1l (1000ml)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',57.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BDB483F4-D6D1-4BB0-B8FC-8F5F300EBAE3',19002,'Paneer Biryani','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,13) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ED9F85E2-CAE4-4BF5-A049-8F7E24099D8A',50126,'Aloo Pudina Raita50126','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('929B7E24-3DEA-46B3-AE03-8F8B372DBACE',50137,'frouit cream','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9181DA71-4B34-4374-A66F-8FC052E04368',9037,'Onion Kachauri','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2091) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B5D25EF2-5BE2-4B13-A849-904D04ECABDC',23015,'Chocolate Muffin','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('80770355-E0A8-43AC-B852-90598C4ADE96',64,'Papad','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,69) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('21D18318-C0B5-4973-952C-905C003F472B',9553,'Rajma Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',135.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CA58FA63-84CC-4960-BDA1-907D59FA5012',9512,'Paneer','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,675) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DE9AB250-D828-49E6-97BB-91B49C6C2C8D',50118,'Tomato Capsicum Onion Foot Long50118','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B766AE64-E141-4B34-B9B8-91BD020B7602',15018,'Onion-Tomato Uttapam','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8A344FB0-FC89-4DEE-8E4A-91D2014CF2A2',20001,'Thali Meals','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,402) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7A79D574-5C77-49E6-9A31-91FEE159EF97',9015,'Methi Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1651) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C35BA1FD-7943-4A50-93FC-92269D284DE9',15,'Plain Ghewar','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,421) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2F4C5C4D-9E96-472E-9BA3-92A10A4D632C',25030,'Chocolate Burfi (Khoya)','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,284) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('50807DA6-E5FF-450E-88D3-92BE098D352B',55,'Butterscotch Sundae Cup','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',18.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('08316D91-D388-451B-B007-92CD017748D7',6250104,'Chinese Thali Pack','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',103.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,57) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8598B1EE-BA7A-4C70-B95F-93495D07B6B8',9507,'Double Chocolate Cookies','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B0AF651-6810-4FD3-8EDC-941B80B9F18C',12007,'Hot Butter Scotch Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,31) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2770A835-F797-4A23-9B89-9429DAE004CF',9024,'Mota Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('476B44B5-325B-4729-B309-942FA77B8498',9851,'Kaju Pista Cake','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',400.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0A81FBD0-09E9-4119-BA5A-946A3285B6E4',15009,'Paper Masala Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('75578F56-ACE9-4891-A92D-949BE0284A2B',34,'kitty 3','Pack','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8CB3E0F1-36F0-47AA-BBDB-94B704BABA28',50098,'Tutty Fruity Triple Sundae','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0CEA6C75-EBC2-4A59-BF21-94BB585762C9',50097,'Stuffed Tomato (Indian)','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('09808152-DDFB-4CEA-A047-94E60E686ACB',16004,'American Chopsuey Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,110) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E868FF1C-F838-4B9B-8A63-94F89F6AE554',5027,'12" Extreme Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,46) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E9D799B4-ED45-4F22-944F-955D0F99A59A',23025,'Caribbean Chocolate Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1E36FA3B-3501-4920-8516-95F120CCD65F',9042,'Mumbai Bhakad Badi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0DE052F9-0C28-4575-AB55-963D885AC209',50095,'Pepsi Gold','Bottle','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('80A1B320-0646-4EB5-8681-96787F026EF3',25064,'navratra thali','No.''s','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('40DF07B5-1B37-4176-80DC-9696BB5C3469',16003,'Singapore Noodles Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,40) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C848F183-D5AE-43A8-A50E-96EA508B0A2C',18009,'Amritsari Kulcha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,114) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('050BDCD4-C00C-4BB4-86B7-976AA2E31BCC',50034,'extra desi ghee special','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',16.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DA010218-F805-486E-B9F7-97B62ED2F283',50015,'shaker pare','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,243) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AB2B855E-D03A-4D82-935E-98A701295BFB',6250033,'Tutty Fruity Tripple','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B97A91BA-A8EF-4764-9D4D-98ADEE0C5917',6250108,'Khoya Kaju Ghee Mix','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('85198EE1-C44F-4AAA-BE23-990C4B140C57',9950,'Paneer Haryali Tikka','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D0D22EBE-2DED-433B-8127-991E5E772A6A',50101,'Aloo Puri','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AA124A2B-EF25-4C25-B1A6-994D465F7EB3',25251,'Gole Guppa Water','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',5.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,103) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E64BCB79-A3C8-458F-9441-99684F7C90D3',15008,'Paper Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BE1092D9-B2D3-41F7-9B15-9995503664F0',5015,'12" Mushroom Delight Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4D92900D-8131-4BF9-B805-99A1EB0E5559',25012,'Kesar Firnee','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8A82932C-692E-4857-A890-9A1830347ADD',9959,'Paneer Taka Tak','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,50) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('14D962E2-2A7B-4B89-AB47-9A5398D514AE',6250064,'Cold Drink6250064','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.55000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C18CE55B-00E5-4DCF-862E-9A703149A2FB',5026,'10" Extreme Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',155.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,66) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A0D9151E-E463-4B1D-BBBF-9A8018C0F66D',25148,'Noodles with Gravy','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('461715A2-9588-4928-8B2D-9B1BA6504DB1',1005,'Talumein Soup','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,24) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EC11BA7D-9B8A-40D6-B424-9BEFEC508F48',25250,'Khandvi','Kg.','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('93051DAC-A74A-4E2F-BC56-9BF894EAE055',9203,'Choco-chip Cup','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,43) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CB184E8E-1E73-40E8-B935-9C094BD46B81',50080,'Pao Bhaji Desi Ghee','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,55) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CFFC4A54-271E-4D28-AA60-9C46A0F90D32',9094,'Kamal Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1B05A7F1-F191-4421-8D26-9CD7026886A1',60,'Kiwi Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B9DB8CD7-9687-4A33-8F25-9CFEB0EAD4F1',9025,'Mungra','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,57) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6C44D5B7-0526-4ED1-A85C-9E0FE6EF2E2D',9556,'Methi Paneer Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('38C2B5B3-F48F-4EDA-805C-9E1F46FC6473',9115,'Gur Patti','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0CC06471-D716-482C-B041-9E5C3D2E2FC4',97,'Diet Can','Can','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.22222,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,22) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7300CC66-6DD4-4844-A417-9E702581C1DD',14024,'Bhel Puri','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,264) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DDDE25D0-6B55-4BA2-86BD-9EDBCCCD3B72',15006,'Masala Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,610) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0E1FEBEE-95B8-4E95-A425-9F78562FD56B',15016,'Vegetable Uttapam','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,22) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CFF0FB1E-65D9-4056-9D90-9FA03941EDED',50059,'Punjabi Gunjia','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,25) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B65ACF74-882A-4790-98CB-9FF0B22DFF18',73,'Single Chana Bhatura','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8D20F04F-A234-48BA-811E-A0A2E167AC20',6250098,'desi ghee chana kulcha','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('54C433D5-FD45-44B1-BF0A-A0DC35C1C241',9118,'Shalimar Cheeni','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9093CFE-1AF8-4594-B948-A1402753B52C',25077,'Kaju Gulkand','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',260.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,295) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D2DA9490-8BFB-4B2F-B581-A2640C968879',9104,'Mung Dal Halwa Kilo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,554) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D49C8B9F-9916-4F79-B539-A2921724090C',6250095,'Fruity Delight double sundae','','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('252EF8F2-0920-48CD-AEC4-A2A9BD256C71',9090,'Kesar Peda','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D3A2C500-B72A-4FA5-8A9A-A2BA3CE48130',5023,'namkeen-muttar','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',98.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,118) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('372929CB-3D25-412B-8380-A2BAB07F3A7C',17006,'Shahi Paneer Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,585) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0462F4B1-5735-4C17-8A38-A2EC622CD2C6',9107,'Gajar Burfi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,103) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4C80A52F-DF0E-4EE8-B715-A35F7868FAA8',26032,'Khoya Roll','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,147) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5F7C6277-B4A4-4EC8-AF8C-A37715738E80',9223,'Ice Cream Cone (12)','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2FF3311B-5F8B-4CFA-B86F-A39DB00E492B',629645,'munchini Double sundae MDS','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E7A434B9-929A-46F1-BE5C-A3FD95D56000',26023,'Pista Lauj','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',790.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D5F86D61-9B68-452E-A178-A4481FBFB3C5',25011,'Milk Badam','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,612) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6CA4DFF1-57A5-4BDD-A2DB-A48B0EF4D5EC',9003,'Coffee Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,54) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('64ACC4C5-442C-45F9-9387-A53376D74B6D',13000,'Dry Fruit Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',266.60000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,275) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5C35BCC6-64CF-4A43-BEF7-A5953941B19C',26001,'Kaju Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',320.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,4046) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9D9DE118-146F-4BBE-9D22-A603B798D1A4',50130,'Fruit Cream50130','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DCB8B564-5E57-4B44-8268-A62D5519ADC7',5006,'cho-almond pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.60000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('18294EA9-8CEA-4D5C-84B6-A67A4C874EEF',7004,'Pasta Salad','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E0258DDF-0525-4E22-9BD7-A7443A2C2ADC',100020,'white forest cake 500gm','Pack','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','3D1413EE-D3EA-412F-B762-BAE37BD503B6',133.33000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',33.67000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A79FAC5A-EE9F-41A8-838A-A755882B16DC',25013,'Gulab Jamun','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,2437) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5D552D5B-1B53-4438-98A2-A78D9466E0F4',50135,'Feeki Phainee','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,256) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A470790A-C9E2-46EF-80BF-A7E6F59DF050',50055,'Single Scoop','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,66) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('36A41913-DC8E-4B7C-A740-A81952D42316',9958,'Paneer Begam Bahar','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6B073199-85E9-414B-9E65-A882D444B2B6',12006,'Strawberry Triple Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FD2EECB1-554A-4A52-B161-A8B04DE864BC',6250106,'Chenna Murki 400gm Pack','Piece','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,633) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0E668032-34A7-4256-9F83-A93D2CD0BF50',25066,'Chota Kala Jamun','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,170) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A2550210-D5F7-458E-8A41-AA04C76E8C9E',1000,'Honey almond pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','75B28950-02AF-4939-87CE-C99653522B33','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.60000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,281) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('86A1447B-30EB-4BEE-A8D9-AAE888230A25',50068,'mesu pak khoya','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F4DCCCC4-5990-4B79-BE7E-AB216786A37F',4002,'Tomato & Cheese Grilled Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,70) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('269E4258-D3CF-4958-92CB-AC5D66506A20',6006,'Fresh Coleslaw SW','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,904) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6BD86367-7662-4578-8AB1-ACD354896007',9612,'Strawberry Pastry (12)','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.55556,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3C6EAA8E-E6E3-40F6-8AB5-ACEF53373205',6250109,'Khoya Kaju Mix','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B08EBD44-5E25-40DF-8AE4-ACF32D600F2B',21108,'Bengali Special Pulao','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3EA36E68-F941-4046-B6ED-AD1893E72722',9010,'Aquafina Mineral Water','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',11.55556,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,239) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5457C050-4C0D-4562-B3BA-AE56D18D1214',10009,'Orange Glow Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F03F2EFB-0F8C-468C-9225-AE6AC381D5D8',9221,'Vanilla Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A69F9F4C-3421-45E5-B6FB-AE74D337FFE9',12004,'Pineapple Triple Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ADC19F2D-2475-4AA5-BE29-AED626B229BA',100013,'Til Chikki','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',300.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2A5C121E-136C-47B0-9B46-AF2383DFF407',84,'Misc. Sweet-140','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,41) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('44B8E24E-811F-4506-9E4F-AF6233DE5AD2',72,'Single Chana Kulcha','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('183EB4E0-FFFA-44D1-BB21-AFD3F9424748',9558,'Palak Paneer Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',165.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('79CCE18D-5F59-4DD2-BD26-AFFED1565801',25002,'Mal Pua','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',12.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,341) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EB2D1A09-C807-4855-924A-B0FB9F6552C5',27034,'Kaju Dil','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,44) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('788EC943-4057-473C-AE60-B142E536D988',21010,'Special Thali','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',68.93000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6BEA7CF0-C0DA-47E1-BCDF-B1BB25F56543',15007,'Paneer Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,75) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2B8DBD47-E8C1-48B7-B0CC-B1EBC467146E',9557,'PTBM Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('56F7ED44-1FBA-4E35-B99B-B1F8C8479969',26004,'Kaju Kesar Roll','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B4757713-7FF2-4DA9-B677-B232A37D7230',50004,'navratra tikki','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ABDAD27F-07C4-4F8E-8AF0-B254F8C003A9',9220,'Mango Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('248B8BDB-5340-4656-B846-B278F2EE1AAA',1003,'Minchow Soup','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,146) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A52B8BEB-C788-4AD8-A570-B2827B8285EA',5005,'honey almond cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',293.33000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C5A31C19-AAA2-4D2F-B069-B2AE79E05657',9050,'Kajra Bahaar','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3ACF8B40-D4EE-4035-8180-B2E45AE558AF',25001,'Rasgulla','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',8.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,6311) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B6BCEDE2-1BDC-44CC-8723-B3306CC3EE23',12003,'Pineapple Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A401F601-CEA6-4444-A47A-B372C6FB4D8A',14004,'Dal Kachauri with aloo (2 Pcs)','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('220AE38C-2808-4432-B28F-B441E1F14188',9956,'Veg. Thopa','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3FAF019E-EB3C-4B5B-82E5-B45D5C457029',50041,'apple pie','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4760030C-9E73-4B08-9568-B46012CB6B02',62,'Paneer Jalbarezi','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0B47C327-489D-4321-AE18-B54854735A76',50032,'Extra Kulcha','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',11.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AAB1C493-CD55-4FE8-BDAF-B55BE0C2FAB1',15001,'Upma South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('27519774-10D7-45A1-AAFC-B56082CA770C',50020,'Plain Curd','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,63) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3A069D91-3237-4427-9F04-B56721285559',9007,'Strawberry Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C4C1F801-68C0-4AB7-BEB7-B58D3F08F955',7006,'Waldorf Salad','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('70818CDD-9EE3-4D33-869E-B5EE2F18E864',50061,'Rum Ball','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2B5C6E9A-9FA3-4D33-9193-B6331CD67CE4',50066,'Besan Burfi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,435) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('47C05513-BF4C-46A1-941D-B669C8D5158A',25089,'Patty','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,383) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('716F95D3-92E4-4829-B35E-B6B4F410A2FF',629121,'Gajjak Pista','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('957E2AF8-9A25-47A0-9994-B6B69202DD51',27004,'Chand Bahar','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('33A457A9-37E2-4053-986E-B6C426D279EA',6250079,'Tomato Surprise Foot Long6250079','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A8877B16-3999-4077-BB68-B6E8DD3A00EC',6001,'Pasta in Red Sauce','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,68) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8058B99A-A486-496B-A7A3-B727656EB875',9106,'Boondi Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,369) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7DB4B287-E033-49E7-A3FC-B7B1BAFC54F4',512,'Badam Kali','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A29B6DD5-EB92-4867-9D8A-B7B3861D0AEA',18014,'Paneer Tikka','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,141) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F00F5028-D5AA-4BA2-BE31-B7BD2BDFB110',21104,'Jeera Aloo','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,95) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20CF2AB0-295D-4530-8396-B7EB586F6868',5012,'12" Corn Feast','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,14) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C996A171-5482-4AAA-8D3F-B7FCE86D4E97',25,'strawberry pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.56000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D0B274C4-BE86-4475-9C46-B87333FF698A',25146,'Bengali Spl. Noodles','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,35) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3EEE6923-E47C-440C-906E-B8865C19D3D2',50053,'pastry50053','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,62) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7CFC8F8E-1F7F-4C5C-84F8-B8953F550C40',6002,'Pasta in White Sauce','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,51) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D209AFA2-E3EC-4854-BAA5-B8B1D4FC1378',1002,'Hot & Sour Soup','Cms','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,45) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9222CE9F-B390-4789-BB1E-B8C4F9DF74B1',1004,'Sweet Corn Soup','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,88) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ADF912A1-A1FC-40EA-AC56-B8EB94C98FE5',25040,'Green Nariyal Burfi','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E1D5AF08-FDA2-4A3C-8B0B-B922E026E8BC',5038,'Garlic Bread with Cheese','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,64) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4363B126-60C5-40E6-82DC-BA7F2AC9DA51',10003,'Pineapple Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('05C4C239-6F63-42FE-B2AC-BADDC4E95909',100000,'Mithi Mathi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',89.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,564) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CB5DF6C4-50BB-4BFA-97FF-BAE05498E92A',53,'Dal Kabila','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,413) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FB90B2D7-52EE-485B-BB99-BB4329570B6B',6250085,'Ghee Roast Dosa6250085','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2C17007E-1AE4-42D2-B82C-BB775CD7D6B0',1006,'Vegetable Soup','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E356C2BE-EB85-4DE4-8462-BC2CAF493FBF',6250070,'Palak corn','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E8CE599-FD52-4A63-AE2B-BC4456662186',995,'Aloo Ponda','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',6.22000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B4F7C0D-EB2F-4E21-925F-BCDC349E8C25',80,'Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CA6FEAC6-53B3-4668-B51A-BD196C77AA69',50072,'Dalda Ladoo','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B4573BBC-0596-4889-8CBA-BD6D73818C23',69,'Single Tikki','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',14.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('33DF935C-AC7C-407D-95A2-BD7FF8EBE7A6',50089,'Petha Galori','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,739) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('44D976F9-4020-4233-89EC-BDB25CA8D1E2',50045,'Kaju Badam Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('16A3C1E7-9E61-41D5-ACA2-BDC6F782BB98',508,'Rs. 09','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',9.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('64D7FAEA-4451-40F4-B1BC-BDE8587A5F0E',50141,'Navratra Pakoda','Kg.','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7C2D9F6F-1D99-4970-9684-BDFF6FDC60F7',9505,'Strawberry Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('084B90AC-67EF-4077-93FC-BE30220F5830',6250063,'bisleri','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7E9473D3-F239-422E-95BC-BE4E984812BD',25028,'Shahi Pinni','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,93) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EB786559-DE8C-4ACB-BF70-BE7975532C82',100009,'Khasta Gajjak','Bottle','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,6) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E81EB8F1-11A4-4047-ADE4-BE8B4758E3E7',9855,'Pan Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1A83DCAF-882E-4D16-8E65-BEBCB605622E',26014,'Anjeer Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',410.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,101) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5DAF2024-A8B9-451E-917B-BEBE44620199',6250057,'Butter Paneer','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',72.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('808FE189-8CAF-424C-89DE-BF2AF7EEBFF4',50107,'Fresh Lime Water','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('69EAF82F-B8C1-4CB8-B66C-BF990DE1899E',9601,'Honey Bee Biscuits','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('28D8537F-2569-4774-B030-BFCBE9D6E096',26003,'Kaju Gunjia','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,47) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FB8DA5D4-676F-4D12-9858-C05F409813FF',5019,'7" Shezwan Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9BDC84B6-A21F-46D3-86E7-C097D27C8676',26009,'Kaju Mango','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',350.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('30C0FD41-4E47-4F8F-A5E2-C09FB4FE1543',9002,'Butter Scotch Ice Cream Shake','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('060B9635-AEB9-4009-A241-C0A1B6C829BF',50052,'club sandwich50052','No.''s','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('349F7280-B8B5-498C-8B69-C0B453EEB57E',11000,'Blue Berry Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',222.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BC36C061-5663-44A4-8465-C0E11D1DD76C',506,'Rs. 07','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('76DC8F63-B971-4D7B-B395-C0ECDD217022',25082,'Sandesh','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',10.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8D1464C8-09B4-4912-89BC-C10CFFA21BF1',35,'kitty1','Pack','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6FEC6AE7-F9F6-4E76-B4B1-C17013363FDE',50132,'aloo wonda','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9CAFE58-5B75-4C87-BBDA-C1CA72B38F5A',25026,'Besan Tikki','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D4A0BC28-E52A-49DD-99F4-C22F29BAEA63',6250067,'Mix pakora','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,124) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8564FB28-B454-44D3-A69B-C247819EA258',50064,'holi desi ghee special','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('771B8A62-FF21-441D-936A-C279B552AE30',14023,'Dilli ki Chat','Plate','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,232) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A2E052B6-CB7C-4A55-B15D-C2F07CAB85ED',11003,'Lime n lemon Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D6C3532B-7C2C-4432-83CB-C32697751D40',10002,'Lime Ice Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2DBE6B04-DFFF-4971-B3B4-C37D4D82CE32',50113,'Plain Cheese Foot Long50113','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('781FFE77-F8C5-45A6-8A8C-C3A20CC7A9FF',21006,'Paneer Lababdar','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,195) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E09B9556-867C-4A3F-A1C9-C3BECC14AEB8',9026,'Bhujia','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',84.44444,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2E6290DE-C97D-432A-8575-C3C8589CFE75',14002,'Aloo Matar','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5FAB3E10-6C49-4DD5-921F-C4FC92A76014',18001,'Tandoori Roti','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2365) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B40166F7-F6EA-4914-85DA-C553143E8424',25090,'Square Biscuits','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C98549EC-E223-4A91-B6F5-C596ACB14448',20003,'Unlimited North Indian Meal','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',110.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3EE223D0-AB70-499D-95F6-C5FB418FEC2A',9210,'Real Orange 1l (1000ml)','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',57.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AC4CA854-5FDB-49C7-92D5-C64438F234B7',18003,'Lachha Prantha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',12.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,652) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F29805DE-1469-42AC-AD88-C66F869FAF1A',6250100,'Veg.Momo','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B311949A-47A1-4BF7-8D9E-C6760C418934',9016,'Dates & Cashewnut Cake','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('84395525-D756-435A-A7F0-C6CA7D91284D',10004,'Strawberry Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CDE8D480-5B93-4C34-BBE8-C77BE57B3E92',5555,'cho chip cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',284.55000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,425) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C352DF4F-EDAC-4E65-9ADB-C77D9CEE1D2D',82,'Misc. Sweet-160','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,89) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('00210062-8325-4C52-81AE-C77FC3E48857',9954,'Chilli Garlic Naan','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,42) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B727616-13AC-45CA-9289-C7F142EF89AF',57,'Buffet Dinner (90)','Plate','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7532F562-9705-4658-A4D7-C82AB589EC11',90,'Panjiree Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,713) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A1638788-24A5-46E1-A091-C86AE2DBE03C',5035,'10" Tandoori Paneer Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',155.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,17) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4223D018-A361-4D3C-91EE-C87CA48C34DD',6250053,'Club Sandwich6250053','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1185B7AF-0EF1-4D73-AD2A-C88805EECBCA',25023,'Besan Dryfruit Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,527) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('71C30C85-7BE0-421A-AFEB-C8EB0C035A47',36,'kitty','No.''s','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3277CC2C-5A64-47F8-A713-C8FDEFDFAAF3',12005,'Strawberry Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C815B71F-F057-4C6E-ABC2-C938E05554D9',10007,'Black Current Ice Cream Soda','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B1807E00-ABAC-4870-B037-C93C3E3D83FB',6250055,'Mocktails','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE849DE6-2AC4-4BB8-B71A-C99B0F7863B7',9093,'Bada Ladoo (Piece)','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E51ECA9E-F28C-45D5-95E1-C9CF26FA3A1C',15005,'Plain Dosa South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,105) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9603C0E2-21C9-4327-834F-CA447B35AA6F',25038,'Nariyal Burfi25038','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B91DE8A3-B7B7-4FBC-B300-CA517ECB5F07',9029,'Shahi Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',177.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('70BD223D-D555-4753-8043-CAEDC3544F4C',11005,'Strawberry Granita','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('13E4D01F-FEFE-4EF7-A7B8-CAFB291E218F',12008,'Hot Butter Scotch Triple Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('585B833E-7E15-4C7E-8E0C-CB0DEA90FAE0',23020,'Lemon Tart','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5B2E7B4B-7667-4CEC-880B-CBAF6AA9D6A1',6250096,'desi ghee chana bhatura','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,42) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7E54A0B3-764A-4586-BA9C-CC1E9A2751C6',10,'dry frouit cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,30) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE041CDF-A06E-4030-9A72-CC42E713C8EE',50048,'gur parva spl desi ghee','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1A149D92-1400-439E-B643-CCA36C7AEE45',6250091,'White Forest Cake','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,77) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('43BFB778-B209-4754-B54D-CCB67FCD7C1F',50139,'pastry50139','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,102) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A9C990E1-9A51-473E-9BA8-CCB7CBBE08BD',25260,'Onion Masal Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C76944D8-BCE2-4794-B994-CCBA0DD34874',16011,'Vegetable Spring Roll Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,303) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EA214860-AE9C-46D1-BE0D-CCE82A2C7652',9953,'Kashmiri Naan','Plate','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,72) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('92A96EBF-0E8F-42B6-A775-CD01D2279F84',50065,'ice cream','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('723EB176-68DF-4742-BC2D-CD023A108629',999,'Punjabi Puri Chana with Lassi','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E3C2E01A-5CA1-4D42-BC9C-CD75CB8ADADA',50049,'Dry Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,114) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3F8C1434-8CB8-4A18-8C7E-CD8CD1E740B8',100002,'Dry Fruit Box','Pack','A0D44EED-39C2-4030-9030-5C6F928D3D89','092A7308-8A30-49C4-B7C4-C3BADFC1659C','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('25DA910C-68C4-4B33-8920-CD9683BF2FBA',59,'Shagan Panjiri Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',200.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,37) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DAD5A9DA-2046-4666-AE92-CDA9C7F2C2BD',94,'Amritsari Kulcha with Chana','No.''s','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,169) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9B516FEE-19D9-4BD8-985C-CDC538393A0F',100,'Cold Drink 2.0L','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',48.88889,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1161) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7492EBEF-DEA9-4181-8CA9-CE611D963703',16012,'Golden Fried Paneer Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8AEEBA79-7968-4A2B-982F-CE787C7C1EE2',25029,'Khoya Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D4A07022-F54B-4316-8CED-CF2BCB4FC057',9070,'Kulfi Stick','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.89000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3DCBBE25-822D-4E2C-A8D2-CF47B86C415D',9036,'Chocolate Italian Balls','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('427A80D2-0D8C-4DFF-8537-CF8C8F9DE963',7002,'Green Salad Healthy Choice','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,208) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('11D5074A-2205-442C-AF62-CF90698B6DAF',629512,'Paneer S','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7E39D460-071E-4DF3-B3B3-CFBD0193DBF3',4001,'Grilled Cheese Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,231) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6616CB54-D328-4475-A6B7-CFCABF6C9B0C',5020,'10" Shezwan Vegetable Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',135.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('630C8C4F-D28D-4EFF-8AC8-D018695C093B',50028,'Pheeki Pheni','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,310) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C9DB9441-4F49-4F95-8CA7-D03738A800CC',25042,'Son Papadi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,194) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('16CBD4A4-69B0-4E9F-A1F3-D0940C335EA7',14007,'Papri Chat','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2686) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('867A140F-30E5-433B-B399-D0AA81ACD4A9',20,'Fruit Cake dry','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('77AB0D40-4693-4878-B65A-D0B8E73F93ED',25048,'Plain Kalakand','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1379) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('060C19BB-27DB-4BFA-9E3C-D0DAC7300F22',25009,'Chandan Malai','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DAC81C10-A5D7-4EE5-9AFD-D141DC555F0E',23030,'Puddings','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,155) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F5EB8AF8-3BB8-4647-B982-D1480001C453',6250113,'Butter Scotch Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',240.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,215) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E31FF2A-2388-4977-B2E5-D2395CB3B645',50108,'Orange Juice','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5345672C-04E1-4794-B5C8-D29800991B7A',9502,'Plum Pudding Piece','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8B3E3F83-E227-438A-9011-D2B78FC14252',25049,'Kesar Kalakand','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A6661BDF-398D-47B9-8CB4-D2D07D922DAD',15004,'Sambhar Vada (2 Pcs)','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,189) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4133C1E0-530D-4D3A-8E1C-D2DA5DD84AB0',9038,'Mattar Kachauri by Piece','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',4.44000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A2E374C9-09C2-4C86-8A80-D348EBAB5C53',25019,'Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5E80EAAD-02D1-4090-8D50-D34D4CCB37E7',6250060,'Gulab Jamun Phool','Plate','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D9EE7672-0FF6-477A-A483-D36606B494EE',50002,'Real Juice 1L (75)','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',66.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,101) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('19E3A2EB-310C-4FE5-AB0B-D36B0821FEEC',5028,'7" Paneer Chilli Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',105.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('20B40626-107A-4D59-8D2F-D37B626FE27A',9215,'Creamy Hot Coffee','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F36E9C3B-2937-46B3-9A23-D3B1AA08E0BC',9561,'Kadhi Chawal','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4F6077CF-8FDB-4121-89EA-D3BF9DC4C158',12001,'All American Banana Split Double','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('51B06145-F4A9-46A4-BEB1-D454C89383AC',6225057,'Plain Ladoo','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',100.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8E8F4A5E-F96D-45B5-8CD7-D4960327A6B2',6250078,'Mushroom Delieght Foot Long6250078','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6C8BB18F-9DDA-4A44-BF7E-D583E4051BC4',50058,'long lata','No.''s','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,13) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('88CDE3B2-F98F-4795-AB23-D5A00ECE7566',25014,'Chanderkala','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,13) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F94641E4-5FB6-48DF-AEC7-D5B099B201B2',27,'Pineapple Cake27','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',186.60000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,21) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CA550789-2D17-487C-AFA0-D5B1FBB752F0',14010,'Dahi Bhalla','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2036) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4BD780BD-129E-407D-80DA-D5BD5BD75F4F',27039,'Fried/Nameen/Masala Kaju','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',552.50000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,712) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('46B63025-2BDE-4CC8-93D4-D62E654C2413',9103,'Pinni','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,526) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C15BAEDF-78A7-4F86-9CE4-D64A2A114AC7',17014,'Plain Rice Indian','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,220) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B11B963-4B02-4E88-A916-D66F40AB26BF',27019,'Pista Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ECF5F552-594F-4AAB-A4DA-D6A3662FCA2A',6250058,'Chocolate double Sundae6250058','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('951DF85D-8CC0-4FDF-8C4B-D7218B19DC54',25005,'Sugarfree Rasmalai','Piece','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',14.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1261) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F0622923-C866-451B-A5C0-D787B9BF0772',9091,'Plain Peda','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,560) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('02B0953B-7D8D-4429-AC11-D79C834B8F8B',6216,'Khoya Ghewar','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FEED129B-76D8-4A4E-88D0-D7B281F7FF04',22009,'Rabri Faluda','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,120) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C38C389A-20ED-4FFE-A309-D87DC6FDD3FC',501,'Cash Charge','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,973) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('09A219B4-73F0-4EDA-8DF1-D978342C40FB',50127,'Fresh Onion Salad','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,19) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1114E895-AAAE-4A28-A953-D9CE19DB029A',26,'Pepsi Cafe Chino','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',11.56000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C9602EB1-89C4-4F19-A84F-D9F5635D5614',9607,'Evergreen Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1E078426-509B-4FD2-9992-DA1439FFA41A',50091,'Extra Bhaji','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',18.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('41EF872F-ED5B-4B0F-8346-DA50C73DDE3F',16001,'Vegetable Noodles Chinese','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,933) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('09003343-B183-4E0E-9795-DA6042E6CC0D',9803,'Aloo Lachha','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',106.67000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,17) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('77DBF8B2-FDE6-4634-A01C-DA918E4F8650',9111,'Desi Ghee Boondi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('526BA840-64A4-49BE-B357-DABBB29BE511',6250116,'Cho Nut Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',257.70000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,132) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('76EEB002-C2FC-40DF-9E86-DAFABA179AC1',6685,'Sunday Desi Ghee Specials','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3E11D943-C24E-4DB5-B347-DB034294A098',6250114,'Cho Alomond Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.60000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,101) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1C5AFDDC-7023-474E-A9A0-DB11A894EAEF',78,'South Indian','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D51955A6-AD1C-4FE9-B6E1-DB39CD6D1F0E',25145,'Crispy Menchurian New Style','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,48) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('27165AB3-DA3A-4FAB-8C21-DB45695E2EA5',50102,'Sorbet','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',22.22000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2B02318B-AA6A-4E8C-9AFB-DB89528FF3A3',19003,'Hyderabadi Biryani','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,120) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5F49C7C1-F63D-4812-BB1C-DBD2623AEE06',14014,'Raj Kachauri','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1393) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5F4D050F-0934-4657-8D01-DC1CC90E42BB',27003,'Cham-Cham','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,855) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('818A57E3-E6C5-4405-9C67-DD2D70E940F4',5004,'7" Bell Pepper Magic','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',85.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1A1E3F74-E4BB-43ED-9C7C-DE5163D3FD1A',25016,'Balushai','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,665) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('45C02637-18E2-482B-8BA0-DE6761BC6BB1',5011,'marbel crunch','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',26.60000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,38) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('84032455-F451-40FD-981A-DE976E58EB1B',25083,'Pista Bhoj','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('73DF5D57-B782-4FAE-B467-DEFC15186C94',50047,'chocolate','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,862) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('211FB73E-86D8-46D8-8F58-DF8A42BE9AAC',25050,'Gaund Pak','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,33) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3344C963-A919-4905-A11F-DFB4F38ED023',9511,'Crease Puff','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2C8B875E-2D46-4DA1-9C04-E014BBA5F9F8',9123,'Gur Rewri','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,68) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('08164BBE-C215-46E1-B23E-E0150B9E9622',9122,'Cheeni Rewri','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4FB873D7-6576-49EF-B496-E04574F3F712',6250073,'Onion Salad6250073','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E93FE64F-7D74-4A59-AC8F-E0FBE897C342',5034,'7" Tandoori Paneer Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',105.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,13) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FF655B2C-C1FC-4E17-8DD4-E13A2E06F4EB',4005,'Cheesy Veggie Grilled Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,40) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('825B4F64-091B-450E-BC6F-E1A442EA0A3E',8002,'Chocolic','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',29.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F9BC04FE-D9B6-4E4C-88CE-E1B001ED9C0F',6227026,'Ganthia','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('70DDBE42-B669-4D02-924C-E1FECE81541E',14001,'Channa','Piece','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,81) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1CE514D5-5E11-4DD0-8AA2-E24FA40322EB',27026,'Besan Ganthia','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,76) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5D68D855-CBF3-4D14-994A-E2C79CE9BC6E',25051,'Atta Panjiree','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',260.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,59) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2D334123-8B3D-40EC-AE66-E2D838B09D3F',9508,'Cookie Piece','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DC674911-D53F-4E33-8F34-E319697A893D',88,'Wheat Bread','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('240D267E-2DF3-456B-807E-E3345A18D37E',4004,'Submarine Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('25DDB719-F79C-454F-A189-E3721D48559C',70,'Paneer Pakoda','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',7.11000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,603) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F262B2B5-76DB-4032-9E54-E39355233AEF',5037,'Toasted Garlic Bread with Butter Pizza','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,25) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('73F78CA3-67C3-4047-B0FA-E3CFDEC6E71F',6250077,'Plain Cheese Foot Long6250077','Plate','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B3243DF4-3D9E-458D-9622-E47AEB31F58F',23014,'Muffin','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8FC52136-70F4-4F8F-BFD4-E4B24338F39B',25017,'Imarti','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1309) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('89B3FE4A-30BE-425B-AD4B-E4EA11879393',21107,'Matar Pulao','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,33) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('63C4B7C0-3E7E-4360-818F-E54519F93B04',14017,'Paneer Dhokla by Weight','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',90.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('652C9E35-22A4-48C5-A5C4-E5456EB1CE64',16,'Malai Ghewar','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',220.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,673) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2B51D5ED-68B0-459C-92F6-E602B89BAFA1',9509,'Royal Plum Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',177.77778,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('55A27A83-B027-4E00-9096-E686E1B7FFC1',21106,'Nargisi Kofta','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,61) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0E254F05-E483-462D-8A9B-E6932BD453E1',9022,'Milk Wafer','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C7306A0E-5320-46DF-A0F9-E6C03204EF46',9125,'Sabudana Mixture','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3DC3DC54-5062-4AB0-BF64-E6CE2DBCDF49',23011,'Chocolate Walnut Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',133.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('00043B2C-A92C-49DC-A3A7-E6E81EC03AD3',507,'Rs. 08','Piece','4973B4EF-0506-4A44-8BC4-FA422334B041','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F8D33C90-3B26-4C0E-965F-E7145B7E2231',25054,'Samosa','Piece','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',5.30000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9624) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6A3EE23D-B2F6-4516-96A1-E74280104100',65,'Gajar Pak','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,287) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('730A3C24-3ABF-4C2B-9AF9-E7AD73DA39C5',50051,'Corn Cheese','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',72.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2FF477BF-8D74-4236-B860-E7B7360587A8',9800,'Chana Dal Fried','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D3C5FF35-29FE-411E-ACDB-E7E207C36991',8004,'Vanilla Rainbow','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',29.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3603DA42-3640-4CF7-BB27-E87A38E22DA0',25151,'Chinese Chopsuey','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,17) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6FEF2BA6-B8EF-40CE-B9DE-E9837EF4BA94',9202,'Ice Cream Bars','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',13.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,148) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0E5C7470-0412-4D1E-B8C5-E9ECBA4D8C09',45,'mushroom quish','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('92D5DC81-87A5-45EC-858C-EA6B74B0BAFA',9012,'Paneer Pakora','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',124.44000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BA1466B4-3633-4DC6-9DE8-EA8E8849312F',9510,'Millie Filly Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BA13477F-CC54-4F6A-A568-EAA9C9DD5B13',6250110,'Ghee Kaju Mix','Kg.','A331DC08-EAA5-4C87-8DE0-0F9CBA2558F7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',1.00000,NULL,'3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,0) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E1095B1-985D-4AA5-8ABD-EB33C9DBD52A',92,'Pepsi','Bottle','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CE2E3AAF-959E-4B5C-B475-EB400B7DD8AD',9031,'Meethi Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.80000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4B1D9309-DDD3-422A-85B5-EB8B4CEBDC39',14005,'Dhokla per Plate','Plate','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1094) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('55764486-2463-4287-9999-ECA0B4ABB27B',4007,'Yoghurt Surprise','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5901BCC5-4F19-4422-A645-ECFB3A9A7A75',21,'Paneer Bhurji','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('262E86DE-1BB8-4B07-874B-ED298907F995',17013,'Mix Veg Raita','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,339) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A6FA1191-543A-4325-A257-ED42D0076DD7',6250076,'Onion Salad6250076','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',20.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('42D3A465-DB31-4C2C-BA63-ED56BCD1B2CA',9645,'Mix Pakoda','Kg.','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',120.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,62) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('85919972-CFDA-4820-BE9A-ED5AE3232FFB',26008,'Kaju Kalash','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',380.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,75) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('AD98BDA8-5508-4510-881D-ED6D565EB41C',83,'Misc. Sweet-150','Kg.','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',150.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,43) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('44638F23-4876-4119-AFC4-EE2EC10228E2',9559,'Mattar Paneer Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',165.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('EEA3F8F3-155A-409F-B9A9-EE40A2C72F42',39,'sweet n sour','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',35.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DD725028-9909-43CD-B9FF-EE5C513A84BD',5024,'12" Deluxe Margarita','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',160.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A0FAC305-C1A8-42DB-B9E2-EEA6F6BE60F4',9230,'Cheese Chopsuey','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,3) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3B6015C3-C1D6-40D3-B5E6-EEC0D043A593',18013,'Veg. Seek Kabab','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,82) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1E455DEC-E691-48F6-AF0F-EF434C681897',50009,'chocolate platter','No.''s','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',1.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1204) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2EFF7D96-37DF-4D30-BB88-EF58BC5C82BB',14006,'Gole Guppa (8 pcs)','Piece','381765CB-F018-455A-985D-D5EFB1ED1536','CF0285D9-9FE6-4A3B-A6D9-CBBEA5ED228F','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,4243) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1D1C822B-CA80-49A5-9333-EF7CCFB08F79',9228,'Ghee Roast Masala Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2EE83D40-6578-4E0A-A195-EFCD721B2631',21100,'Matar Paneer','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',75.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,78) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8048AB15-F81A-4F09-8B5A-F06564CCA9DB',12012,'Brownie Double Sundae','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,15) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1A1EAA7C-2AB9-4E77-BC4D-F10746014E78',50012,'Magaz Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',220.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,60) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('3A8D2192-5D4C-44E9-8547-F13B468E52CC',9019,'Kaju Pista Roll','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,49) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('8BEC678A-9986-49FE-8917-F1513849EDFF',9231,'Mushroom Soup','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('BCE08CEE-9789-4F57-96FB-F16A186A0FD7',18007,'Veg. Stuffed Naan','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,113) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('79F65B36-6028-4B58-80C3-F1866AFF6A43',23006,'Mud Pastry','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',24.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,170) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2944BE4D-2EB0-47E4-9A15-F1979A9FB7F6',15011,'Rava Masala Dosa South','Piece','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,78) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('79A70092-F40F-4E96-9F6D-F198CD3869EA',25059,'Namkeen Mattar','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.81000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,346) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7301371C-9E34-4468-96F1-F1BF5CD0839D',50081,'Chana Bhatura50081','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',40.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9E101304-8AD3-4E21-A733-F1DEAD105938',511,'Gajra Bahar','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CEE67046-8D27-459B-82A3-F20D9B42A092',6250054,'Soup 1x26250054','','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','3D1413EE-D3EA-412F-B762-BAE37BD503B6',10.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5B675110-E262-4180-B3F9-F26FEDD9004F',41,'Kaju Dal Moath','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',115.38000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,26) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('9BBC3B43-BBBF-4BCB-9A5A-F29E3F0D9155',5039,'Chilli Cheese Garlic Bread','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,14) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('21F4CFCD-8F46-4C27-8174-F3415003519A',18011,'Aloo Kulcha','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',28.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('18AEFF85-3E07-4F23-AB34-F3B0ADF0F603',50086,'chana bhatura desi ghee','No.''s','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,135) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6AA712B4-3369-44A9-B966-F3D4B5DA0840',26006,'Kaju Apple','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,141) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('D3105863-FFBB-4AC7-8BCE-F3DA5B17E81F',2001,'Burger (Aloo Patty)','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DD723EA0-8AB7-4C7F-A0C4-F3FCE3049A3B',25062,'Roasted Kaju25062','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',528.85000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,158) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C501D806-DC5B-4130-A7B5-F43CCC176A02',24,'Cheese Noodles','Plate','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',60.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,28) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0C03DC07-CFA3-4E80-A83D-F46835A242C4',23009,'Chocolate Eclairs','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',21.33333,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('64E37237-A026-405B-9352-F5314A16235C',9551,'Dal Makhni Kilo','Kg.','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',125.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('07966EE1-EA52-4478-A3D3-F5A778ED55AE',50088,'Ice Cream Cone Rs. 20','Piece','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',17.78000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,16) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('FF35F16F-A80B-469C-A49A-F5ABCBB1CE97',9604,'Kesar Gunjia','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,126) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B9BF5977-9033-439A-A76F-F5C3AB74D15B',27029,'Chauras Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.81000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,44) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('A02E074E-236B-4AF9-9DCC-F63B8AD47CBB',9110,'Shahi Ladoo','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,1) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F69FD02B-30A8-4ADB-809B-F63F1DD9DECD',46,'Veg. Roll','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('64C86018-45F5-4F63-B8A1-F682A94DAF1D',629216,'Hot Plain Milk','Piece','389A3E09-AC97-4C4B-BCE1-342D2CF991DB','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('6FD82EC0-A64A-4431-B689-F69F8E81A46D',50100,'Chocolate Triple Sundae','Plate','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('436F55BA-99C5-428F-AC71-F6FC948E4A45',22008,'Kulfi Faluda','Piece','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',30.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,267) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('961B66B1-951B-479E-805D-F76D98A06AB3',25076,'Kaju Litchi Burfi','Kg.','80EC988A-448E-4F81-B753-1B70FF8B233C','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',360.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,68) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2BA0B5C1-4468-4934-A2EA-F7EFBBCA75C2',27010,'Pakiza','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,285) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C0A83F2B-244C-455D-84BB-F8DA8E1F6B7B',50025,'Aloo Sabzi','Plate','3B6EB835-44B9-4C90-B058-E5CDE0CB1E2A','25ECCB39-7D75-49DE-8F47-87DC5D5326B9','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,20) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('75D4539A-0A32-40B1-A21B-F91088CC3A1D',21110,'Kachumbar Raita','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',45.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,12) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('907AF81A-736B-4665-9031-F91B3922BBF0',9126,'Mattar Kachauri by Weight','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.81000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('C1CE0372-1478-43D3-957B-F99E548ACD97',629031,'Palak Matthi','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',71.11111,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4D624E8A-8CBF-4FCA-879F-F9AADDE209AC',9030,'Nav Rattan','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,45) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2D22FF48-3212-4A3B-9795-F9AB955E4B4C',25079,'Khoya Pista Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',180.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,813) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('4D9DC655-8AC0-47AB-9037-F9BA0AF164CD',9506,'Chocolate Truffle Cake','Kg.','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',249.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,530) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0C687BC6-E0DC-4CE6-84AF-F9E0A1ED9601',25018,'Angoori Petha','Kg.','F76B54C6-21CE-450F-AC73-E1A3A43DAB43','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',110.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,1052) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1E1BA955-0B17-43BB-98DC-FA033E3361E6',9229,'Onion Capsicum Uttapam','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,27) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2CF40351-29EB-433F-BD86-FA5152D78322',9555,' Paneer pasanda','Plate','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,18) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('46B5B10F-22E7-4053-8A83-FA7FCA0007BF',4008,'Chef''s Spl. Sandwich','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,7) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('2F308BC9-3174-4EF2-81C5-FA9ACC2B6A9C',9500,'Bread Stick','Pack','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',8.88889,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('63A51304-CA41-4EA7-B856-FAB0482F1F9E',50117,'Chilli Paneer Foot Long50117','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('646245A6-D77C-4BCB-93D5-FAC8728A5EF0',18005,'Naan','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',15.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,443) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B5ADFD21-00F7-47DA-974F-FAD717F4CEB1',21003,'Veg. Stuff Naan with Gravy (Value Meal Deal)','Piece','3769C9D3-C194-438D-AB18-2A665D5DB052','C8C87922-5982-4731-AB9A-352D21F19EDA','48E10C74-9508-44CB-9D7D-7B71ABDAA289',42.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,32) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('51B8C36A-CCF0-4DFA-A033-FB396634A3CC',27027,'Roasted Kaju27027','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','AC73D06F-997C-44AB-9712-4E2CD8049357',480.77000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,5) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1AEA4978-E65E-4168-A8D1-FB6B00F0CFD0',5040,'Corn Chilli Cheese Garlic Bread','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',65.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('5CA12FDC-E23D-4828-AD82-FB84DB4F352C',17007,'Palak Paneer Indian','Piece','5E6522AF-99B5-4F7B-B561-352380C53CF1','092A7308-8A30-49C4-B7C4-C3BADFC1659C','48E10C74-9508-44CB-9D7D-7B71ABDAA289',80.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,202) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('459C6F9C-7B8F-437D-8B82-FB9143507C7D',25084,'Kachha Gola Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',190.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','3D1413EE-D3EA-412F-B762-BAE37BD503B6',0.00000,0,0.00,0.00,DEFAULT,355) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('E69E5081-736C-4FF3-B9EE-FBBE2827AD26',22005,'Moong Dal Halwa','Piece','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',25.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,409) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('35BF46DC-757F-4E2F-B248-FBE4E5CECF4D',27018,'Mango Sandesh','Kg.','CC099265-97FF-45CA-80A6-F7BB189C18B7','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DF9682E0-4E1C-41F0-B27B-FC856F3F61F8',50138,'pastry50138','Piece','A04BAFBD-01FD-4EC8-9858-7E9368383009','A072E791-082A-419D-8889-9387674A8297','48E10C74-9508-44CB-9D7D-7B71ABDAA289',10.66667,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0CA3A65F-1C8C-40B6-A79A-FCD20321FA07',2005,'Sultan Berger','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',55.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,10) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('7C939DDA-7678-47D2-A0C8-FCDA8A1B2050',25015,'Jalebi','Kg.','B75B3C3A-4364-4B36-8DEA-C0C0247449B2','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',140.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,204) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F994DE88-B03D-489D-B203-FCDB9B65A850',26031,'Pineapple Khoya Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',130.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,500) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('F145A12C-4A04-4FC6-8531-FD3D25E6710C',6299,'Cold Drink6299','No.''s','AD0AD9D8-8E30-4986-8EEB-482DD446532A','F1837A92-C859-4459-A0C7-D7A1F6A24680','48E10C74-9508-44CB-9D7D-7B71ABDAA289',19.55000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,504) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('CD52BEF6-ED8B-498D-851C-FD72A4B5BCF1',16009,'Mushroom Chilli Dry','Piece','DAC3B270-FA83-4096-9C17-118755B6B9E7','88A234F5-65DA-4166-A171-0139EC7B9BA6','48E10C74-9508-44CB-9D7D-7B71ABDAA289',70.00000,'99D80D24-13C4-4C85-A7EB-67A29D154490','48E10C74-9508-44CB-9D7D-7B71ABDAA289',0.00000,0,0.00,0.00,DEFAULT,29) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('1F1B2DDA-BB37-4093-AE15-FE29E14B08FE',5030,'12" Paneer Chilli Pizzas','Piece','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',190.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,9) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('B34408BC-DF53-421C-A279-FEE2AAA06E48',25255,'Mysore Masala Dosa','Plate','A6446E4B-6472-4B79-967C-AA1DC1265205','ADFB70E9-D421-44DD-B1A8-D1024C776556','48E10C74-9508-44CB-9D7D-7B71ABDAA289',58.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,2) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('DC250358-ECD7-4B64-BD20-FEFEE0ACE558',6250056,'Russian salad6250056','Plate','A6D57F39-2988-4CFB-8564-118767E5E989','EB818456-09C5-4E20-BF4F-FB02812A8008','48E10C74-9508-44CB-9D7D-7B71ABDAA289',50.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,14) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('ED37DB5B-A803-4A21-B78C-FF5F30B8E744',14016,'Masala Dhokla by weight','Kg.','9A479BD4-1DC6-40CE-89B9-07D8E83D3DD7','82D65188-AC81-4355-92B2-762F2E519060','48E10C74-9508-44CB-9D7D-7B71ABDAA289',88.88000,'99D80D24-13C4-4C85-A7EB-67A29D154490','AC73D06F-997C-44AB-9712-4E2CD8049357',0.00000,0,0.00,0.00,DEFAULT,1421) +INSERT INTO [Products] ([ProductID],[Code],[Name],[Units],[ProductTypeID],[SaleLedgerID],[SaleTaxID],[SalePrice],[PurchaseLedgerID],[PurchaseTaxID],[PurchasePrice],[Discontinued],[MinimumLevel],[MaximumLevel],[timestamp],[SortOrder])VALUES('0AF39AE3-09EB-4853-90F9-FFC612B4B5B7',26030,'Kaju Khoya Burfi','Kg.','28846C15-6391-48D4-A50E-2A40BA8156C0','66497F17-8096-46B7-A45E-8851BA4EA780','3D1413EE-D3EA-412F-B762-BAE37BD503B6',170.00000,NULL,NULL,0.00000,0,0.00,0.00,DEFAULT,500) + +-- Inset Tax +INSERT INTO [Tax] ([TaxID],[Name],[Rate],[Type],[timestamp])VALUES('AC73D06F-997C-44AB-9712-4E2CD8049357','4% VAT',0.04000,'V',DEFAULT) +INSERT INTO [Tax] ([TaxID],[Name],[Rate],[Type],[timestamp])VALUES('48E10C74-9508-44CB-9D7D-7B71ABDAA289','12.5% VAT',0.12500,'V',DEFAULT) +INSERT INTO [Tax] ([TaxID],[Name],[Rate],[Type],[timestamp])VALUES('F7755AB3-9EFC-4278-BEE1-849E8FE37ABA','4% CST',0.04000,'C',DEFAULT) +INSERT INTO [Tax] ([TaxID],[Name],[Rate],[Type],[timestamp])VALUES('3D1413EE-D3EA-412F-B762-BAE37BD503B6','Tax Free',0.00000,'V',DEFAULT) + +-- Insert Waiters +INSERT INTO [Waiters] ([WaiterID],[Code],[Name],[timestamp])VALUES('D53F5638-E850-4221-9650-FB66B1C98795',1,'Waiter',DEFAULT) + +-- Inset Users +INSERT INTO [Users] ([UserID],[Name],[Password],[LockedOut],[Email],[Approved],[Question],[Answer],[Comment],[CreationDate],[LastLoginDate],[LastActivityDate],[LastPasswordChangedDate],[LastLockoutDate],[timestamp])VALUES('C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Tarun','930bbe9744386d1202be4228aa63df23',0,'',1,'','','','May 8 2008 8:04:32:313PM',NULL,NULL,NULL,NULL,DEFAULT) +INSERT INTO [Users] ([UserID],[Name],[Password],[LockedOut],[Email],[Approved],[Question],[Answer],[Comment],[CreationDate],[LastLoginDate],[LastActivityDate],[LastPasswordChangedDate],[LastLockoutDate],[timestamp])VALUES('9285E98D-D976-4DC7-BB3F-D6184D388B5A','Admin','452ce6a7441c813e36f228a7d55f3eb1',0,NULL,1,NULL,NULL,NULL,'Mar 24 2008 4:46:14:763PM',NULL,NULL,NULL,NULL,DEFAULT) + +-- Insert Roles +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Log/View','View the event Log',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Master/Products','Allow user to access product form',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/ChangeRate','Allow to access check out form',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/Checkout','Allow to access check out form',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/EditBill','Allow to access check out form',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/EditKOT','Allow to change KOT',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/EditPrintedProduct','Allow user to edit a printed product',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/PrintBill','Allow to Print Bill',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/PrintKOT','Allow to Print KOT',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/SaleDetail','Allow user to check sale',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/SalesBill','Allow user to access salesbill',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Sales/VoidPrintedBill','User can void a printed bill',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Security/CreateUser','Allow user to create new users.',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Security/ManageRoles','Allow user to create new users.',DEFAULT) +INSERT INTO [Roles] ([Role],[Description],[timestamp])VALUES('Waiter/Master', 'Add / Edit / Delete Waiters.',DEFAULT) + +-- Insert UserRoles +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('F2EC9DE5-0751-4709-B1D8-CD3BCD0D8430','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Log/View',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('D1876D1A-7985-46DB-B8C7-CCCA6DC9D238','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Master/Products',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('F6876408-4CAC-4020-8A85-CB5463894654','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/ChangeRate',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('28EAEEEB-5EFF-42C1-AAFC-30E4824C1B89','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/Checkout',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('641D72A1-EDAF-4F9A-A5F5-ECE645FEBE8B','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/EditBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('381821D5-516D-4E8F-BD6B-BC8C1CA8395B','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/EditKOT',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('647CF8B6-D729-40E6-9625-F7EE8FB73B96','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/EditPrintedProduct',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('52712882-B24E-4D59-9DD9-4D8F9C4B1B14','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/PrintBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('902E1B87-0033-4DAF-BDCB-4A143019932E','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/PrintKOT',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('26010629-3E23-42E6-A55B-D2590EE0C52D','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/SaleDetail',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('F69E6E64-5759-4DF2-8DE8-803149B2E6EC','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/SalesBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('D754A729-21FC-4DD1-B37B-B5AD5B291C33','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Sales/VoidPrintedBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('655F59BA-2BF3-409A-B2F5-17BCD0D5D379','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Security/CreateUser',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('028D948A-CD15-460C-AEA1-63C65D3A9708','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Security/ManageRoles',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('5D5CD427-0E0C-4420-8ECF-B05659A92127','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Issue',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('0D01583C-D99C-4857-9326-BD247BA4DFF0','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Journal',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('E02696A5-E180-4A91-9EB7-E98A38416BA0','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Locked',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('12A03D1B-48ED-4998-856D-AA0C5AECEDE3','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Payment',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('E29D11F2-6DE9-46EF-9B2A-FD6CEACE1C24','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Posted',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('A567D0CB-24E5-4BB3-8054-CCCB48DD6E76','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Purchase',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('4C195C5A-7789-41F9-810C-D31419410715','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transaction/Receipt',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('706B2B51-7939-4515-BDC4-D9809014F557','C8E3C9E3-4DAB-4387-A966-2C29F1D4CD22','Transactions/PostTransactions',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('67735CF0-6E89-4734-A522-C5A48C198545','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Log/View',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('DF9F4BD6-5A68-4E94-ABC1-312FABB9FA34','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Master/Products',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('6C48B8C3-40A6-46FB-8ECA-01622E6A5039','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/ChangeRate',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('B773F4B9-66D0-42F8-9516-45FB77E01594','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/Checkout',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('4AAB9620-0A3B-4B97-B531-0B7B9729E420','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/EditBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('30CE982C-7841-44FD-AB8C-2D73E8889A3A','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/EditKOT',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('DF774768-2584-43F7-99F6-695C83859A11','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/EditPrintedProduct',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('B1A9FCC1-2263-4597-9117-D774B065EB78','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/PrintBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('A560B79E-19F3-4663-9DB5-6DA51D12E9FC','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/PrintKOT',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('911D0FC8-25E3-436B-BAAF-13500B27AB01','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/SaleDetail',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('6E7C3342-7FCF-4A74-A039-7FCF497B16E0','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/SalesBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('AEF39B6E-6E0E-4B4A-9968-46856A04B007','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Sales/VoidPrintedBill',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('EFBFFAEE-1ED8-42D6-B783-79B60904A245','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Security/CreateUser',DEFAULT) +INSERT INTO [UserRoles] ([UserRoleID],[UserID],[Role],[timestamp])VALUES('C1A9C284-79C9-4B17-BF2F-A66279ED38F0','9285E98D-D976-4DC7-BB3F-D6184D388B5A','Security/ManageRoles',DEFAULT) diff --git a/Sql/Remove Companies.sql b/Sql/Remove Companies.sql new file mode 100644 index 0000000..60cc7ff --- /dev/null +++ b/Sql/Remove Companies.sql @@ -0,0 +1,675 @@ +BEGIN TRANSACTION +GO +ALTER TABLE dbo.BasicTransactions + DROP CONSTRAINT FK_BasicTransactions_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.BasicTransactions + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.CostCenters + DROP CONSTRAINT FK_CostCenters_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.CostCenters + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Customers + DROP CONSTRAINT FK_Customers_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Customers + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Employees + DROP CONSTRAINT FK_Employees_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Employees + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Inventory + DROP CONSTRAINT FK_Inventory_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Inventory + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Ledgers + DROP CONSTRAINT FK_Ledgers_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Ledgers + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Products + DROP CONSTRAINT FK_Products_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Products + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.ProductTypes + DROP CONSTRAINT FK_ProductTypes_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.ProductTypes + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Roles + DROP CONSTRAINT FK_Roles_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Roles + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Tax + DROP CONSTRAINT FK_Tax_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Tax + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +DROP TABLE dbo.TransactionContra +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.UserRoles + DROP CONSTRAINT IX_UserRoles +GO +ALTER TABLE dbo.UserRoles ADD CONSTRAINT + IX_UserRoles UNIQUE NONCLUSTERED + ( + UserID, + Role + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +ALTER TABLE dbo.UserRoles + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Users + DROP CONSTRAINT FK_Users_Companies +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Users + DROP COLUMN CompanyID +GO +COMMIT + +BEGIN TRANSACTION +GO +DROP TABLE Companies +GO +COMMIT + +BEGIN TRANSACTION +GO +CREATE TABLE dbo.Waiters + ( + WaiterID uniqueidentifier NOT NULL, + Name nvarchar(200) NOT NULL, + timestamp timestamp NOT NULL + ) ON [PRIMARY] +GO +ALTER TABLE dbo.Waiters ADD CONSTRAINT + PK_Waiters PRIMARY KEY CLUSTERED + ( + WaiterID + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +CREATE NONCLUSTERED INDEX IX_Waiters_Name ON dbo.Waiters + ( + Name + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO +COMMIT + +INSERT INTO Waiters (WaiterID, Name) +SELECT l.LedgerID, l.Name FROM Ledgers l INNER JOIN Employees e ON l.LedgerID = e.LedgerID ORDER BY Name + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_Employees +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale ADD CONSTRAINT + FK_TransactionSale_Waiters FOREIGN KEY + ( + WaiterID + ) REFERENCES dbo.Waiters + ( + WaiterID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.CashPayments + DROP CONSTRAINT FK_CashPayments_Employees +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.CashPayments ADD CONSTRAINT + FK_CashPayments_Users FOREIGN KEY + ( + CashierID + ) REFERENCES dbo.Users + ( + UserID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + +DROP TABLE CashPayments + +DROP TABLE Employees +DELETE FROM Ledgers WHERE Type = 'S' + + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.BasicTransactions + DROP CONSTRAINT FK_BasicTransactions_Users_PosterID +GO +COMMIT +BEGIN TRANSACTION +GO +EXECUTE sp_rename N'dbo.BasicTransactions', N'Vouchers', 'OBJECT' +GO +EXECUTE sp_rename N'dbo.Vouchers.TransactionID', N'VoucherID', 'COLUMN' +GO +ALTER TABLE dbo.Vouchers + DROP COLUMN Posted, Review, PosterID, Autolocked +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Inventory + DROP CONSTRAINT FK_Inventory_BasicTransactions +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_BasicTransactions +GO +ALTER TABLE dbo.Vouchers + DROP CONSTRAINT IX_BasicTransactions_Code_Type +GO +ALTER TABLE dbo.Vouchers + DROP CONSTRAINT PK_BasicTransactions +GO +ALTER TABLE dbo.Vouchers ADD CONSTRAINT + PK_Vouchers PRIMARY KEY CLUSTERED + ( + VoucherID + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +ALTER TABLE dbo.Vouchers ADD CONSTRAINT + IX_Vouchers_Code_Type UNIQUE NONCLUSTERED + ( + Code, + Type + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale ADD CONSTRAINT + FK_TransactionSale_BasicTransactions FOREIGN KEY + ( + TransactionID + ) REFERENCES dbo.Vouchers + ( + VoucherID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Inventory ADD CONSTRAINT + FK_Inventory_BasicTransactions FOREIGN KEY + ( + TransactionID + ) REFERENCES dbo.Vouchers + ( + VoucherID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_BasicTransactions +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_Waiters +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.TransactionSale + DROP CONSTRAINT FK_TransactionSale_Customers +GO +COMMIT +BEGIN TRANSACTION +GO +EXECUTE sp_rename N'dbo.TransactionSale', N'SaleVoucher', 'OBJECT' +GO +EXECUTE sp_rename N'dbo.SaleVoucher.TransactionID', N'VoucherID', 'COLUMN' +GO +ALTER TABLE dbo.SaleVoucher ADD CONSTRAINT + FK_SaleVoucher_Customers FOREIGN KEY + ( + CustomerID + ) REFERENCES dbo.Customers + ( + CustomerID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +ALTER TABLE dbo.SaleVoucher ADD CONSTRAINT + FK_SaleVoucher_Waiters FOREIGN KEY + ( + WaiterID + ) REFERENCES dbo.Waiters + ( + WaiterID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +ALTER TABLE dbo.SaleVoucher ADD CONSTRAINT + FK_SaleVoucher_Vouchers FOREIGN KEY + ( + VoucherID + ) REFERENCES dbo.Vouchers + ( + VoucherID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Inventory + DROP CONSTRAINT FK_Inventory_BasicTransactions +GO +COMMIT +BEGIN TRANSACTION +GO +EXECUTE sp_rename N'dbo.Inventory.TransactionID', N'VoucherID', 'COLUMN' +GO +ALTER TABLE dbo.Inventory ADD CONSTRAINT + FK_Inventory_Vouchers FOREIGN KEY + ( + VoucherID + ) REFERENCES dbo.Vouchers + ( + VoucherID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT +GO + +DROP PROCEDURE [dbo].[BasicTransactions_Insert] +DROP PROCEDURE [dbo].[BasicTransactions_Update] +GO + +-- Product Sorting +UPDATE Products +SET SortOrder = inv.Sort +FROM (SELECT ProductID, Count(*) AS Sort FROM Inventory GROUP BY ProductID) AS inv +WHERE Products.ProductID = inv.ProductID +GO + +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Vouchers + DROP CONSTRAINT DF_BasicTransactions_TransactionID +GO +COMMIT +GO +DROP TRIGGER [dbo].[BasicTransactions_Update_Auto] +GO +DROP TRIGGER [dbo].[BasicTransactions_Insert_Auto] +GO +DROP PROCEDURE [dbo].[TransactionSale_Update] +GO +DROP PROCEDURE [dbo].[TransactionSale_Insert] +GO +CREATE PROCEDURE [dbo].[SaleVoucher_Update] +( + @VoucherID uniqueidentifier, + @BillID nvarchar(10) OUTPUT, + @TableID nvarchar(10), + @WaiterID uniqueidentifier, + @CustomerID uniqueidentifier, + @Paid bit, + @Void bit, + @VoidReason nvarchar(50), + @Printed bit OUTPUT, + @Alarm datetime, + @KotID nvarchar(10) OUTPUT, + @CreditCard bit, + @IsImportant bit, + @timestamp timestamp OUTPUT + ) +AS +BEGIN + IF @Printed = 1 AND (SELECT Printed FROM SaleVoucher WHERE VoucherID = @VoucherID) = 0 + BEGIN + SELECT @BillID = ISNULL(CAST(MAX(CAST(REPLACE(BillID, '-', '') AS int)) + 1 AS nvarchar(9)), '010001') FROM SaleVoucher WHERE BillID LIKE '__-____' + IF LEN(@BillID) = 5 + SET @BillID = '0' + @BillID + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-' + SUBSTRING(@BillID, 3, 7) + IF SUBSTRING(@BillID,3,7) = '-0000' + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-0001' + END + ELSE + BEGIN + SELECT @BillID = BillID FROM SaleVoucher WHERE VoucherID = @VoucherID + END + IF @TableID = '' + BEGIN + SELECT @TableID = 'C' + CAST(ISNULL(MAX(CAST(SUBSTRING(TableID, 2, 10) AS int)), 0) + 1 AS nvarchar(10)) FROM SaleVoucher WHERE TableID LIKE 'C%' AND Paid = 0 AND Void = 0 + END + IF (SELECT Printed FROM SaleVoucher WHERE VoucherID = @VoucherID) = 1 + SET @Printed = 1 + UPDATE [dbo].[SaleVoucher] SET + [BillID] = @BillID, + [TableID] = @TableID, + [WaiterID] = @WaiterID, + [CustomerID] = @CustomerID, + [Paid] = @Paid, + [Void] = @Void, + [VoidReason] = @VoidReason, + [Printed] = @Printed, + [Alarm] = @Alarm, + [CreditCard] = @CreditCard, + [IsImportant] = @IsImportant + WHERE VoucherID = @VoucherID + + UPDATE Vouchers SET LastEditDate = GETDATE() WHERE VoucherID = @VoucherID + + SELECT @timestamp = timestamp, @KotID = KotID FROM [dbo].[SaleVoucher] WHERE VoucherID = @VoucherID +END + +GO + +CREATE PROCEDURE [dbo].[SaleVoucher_Insert] +( + @VoucherID uniqueidentifier, + @BillID nvarchar(10) OUTPUT, + @TableID nvarchar(10), + @WaiterID uniqueidentifier, + @CustomerID uniqueidentifier, + @Paid bit, + @Void bit, + @VoidReason nvarchar(50), + @Printed bit, + @Alarm datetime, + @KotID nvarchar(10) OUTPUT, + @CreditCard bit, + @IsImportant bit, + @timestamp timestamp OUTPUT + ) +AS +BEGIN + SELECT @KotID = ISNULL('K-' + CAST(MAX(CAST(SUBSTRING(KotID, 3,8) AS int)) + 1 AS nvarchar(8)), 'K-1') FROM [dbo].[SaleVoucher] + IF @Printed = 1 + BEGIN + SELECT @BillID = ISNULL(CAST(MAX(CAST(REPLACE(BillID, '-', '') AS int)) + 1 AS nvarchar(9)), '010001') FROM SaleVoucher WHERE BillID LIKE '__-____' + IF LEN(@BillID) = 5 + SET @BillID = '0' + @BillID + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-' + SUBSTRING(@BillID, 3, 7) + IF SUBSTRING(@BillID,3,7) = '-0000' + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-0001' + END + ELSE + BEGIN + SET @BillID = @KotID + END + IF @TableID = '' + BEGIN + SELECT @TableID = 'C' + CAST(ISNULL(MAX(CAST(SUBSTRING(TableID, 2, 10) AS int)), 0) + 1 AS nvarchar(10)) FROM SaleVoucher WHERE TableID LIKE 'C%' AND Paid = 0 AND Void = 0 + END + INSERT INTO [dbo].[SaleVoucher] ([VoucherID], [BillID], [TableID], [WaiterID], [CustomerID], [Paid], [Void], [VoidReason], [Printed], [Alarm], [KotID], [CreditCard] ,[IsImportant]) + VALUES (@VoucherID, @BillID, @TableID, @WaiterID, @CustomerID, @Paid, @Void, @VoidReason, @Printed, @Alarm, @KotID, @CreditCard, @IsImportant) + SELECT @timestamp = timestamp FROM [dbo].[SaleVoucher] WHERE VoucherID = @VoucherID +END +GO + +-- Waiters +BEGIN TRANSACTION +GO +CREATE TABLE dbo.Tmp_Waiters + ( + WaiterID uniqueidentifier NOT NULL, + Code int NULL, + Name nvarchar(200) NOT NULL, + timestamp timestamp NOT NULL + ) ON [PRIMARY] +GO +IF EXISTS(SELECT * FROM dbo.Waiters) + EXEC('INSERT INTO dbo.Tmp_Waiters (WaiterID, Name) + SELECT WaiterID, Name FROM dbo.Waiters WITH (HOLDLOCK TABLOCKX)') +GO +ALTER TABLE dbo.SaleVoucher + DROP CONSTRAINT FK_SaleVoucher_Waiters +GO +DROP TABLE dbo.Waiters +GO +EXECUTE sp_rename N'dbo.Tmp_Waiters', N'Waiters', 'OBJECT' +GO +ALTER TABLE dbo.Waiters ADD CONSTRAINT + PK_Waiters PRIMARY KEY CLUSTERED + ( + WaiterID + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +CREATE NONCLUSTERED INDEX IX_Waiters_Name ON dbo.Waiters + ( + Name + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.SaleVoucher ADD CONSTRAINT + FK_SaleVoucher_Waiters FOREIGN KEY + ( + WaiterID + ) REFERENCES dbo.Waiters + ( + WaiterID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + +-- Add Waiter +DECLARE @Code int +SELECT @Code = 1 +UPDATE Waiters SET @Code = Code = @Code + 1 + +INSERT INTO Waiters (WaiterID, Code, Name) +VALUES (NEWID(), 1, 'Waiter'); + +BEGIN TRANSACTION +GO +CREATE TABLE dbo.Tmp_Waiters + ( + WaiterID uniqueidentifier NOT NULL, + Code int NOT NULL, + Name nvarchar(200) NOT NULL, + timestamp timestamp NOT NULL + ) ON [PRIMARY] +GO +IF EXISTS(SELECT * FROM dbo.Waiters) + EXEC('INSERT INTO dbo.Tmp_Waiters (WaiterID, Code, Name) + SELECT WaiterID, Code, Name FROM dbo.Waiters WITH (HOLDLOCK TABLOCKX)') +GO +ALTER TABLE dbo.SaleVoucher + DROP CONSTRAINT FK_SaleVoucher_Waiters +GO +DROP TABLE dbo.Waiters +GO +EXECUTE sp_rename N'dbo.Tmp_Waiters', N'Waiters', 'OBJECT' +GO +ALTER TABLE dbo.Waiters ADD CONSTRAINT + PK_Waiters PRIMARY KEY CLUSTERED + ( + WaiterID + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] + +GO +CREATE NONCLUSTERED INDEX IX_Waiters_Name ON dbo.Waiters + ( + Name + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO +CREATE UNIQUE NONCLUSTERED INDEX IX_Waiters ON dbo.Waiters + ( + Code + ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO +COMMIT +BEGIN TRANSACTION +GO +ALTER TABLE dbo.SaleVoucher ADD CONSTRAINT + FK_SaleVoucher_Waiters FOREIGN KEY + ( + WaiterID + ) REFERENCES dbo.Waiters + ( + WaiterID + ) ON UPDATE NO ACTION + ON DELETE NO ACTION + +GO +COMMIT + +-- Waiter Role +INSERT INTO Roles (Role, Description) VALUES ('Waiter/Master', 'Add / Edit / Delete Waiters') +--INSERT INTO Roles (Role, Description) VALUES ('Log/View', 'View the event Log') + + +---- User Modification +BEGIN TRANSACTION +GO +ALTER TABLE dbo.Users + DROP CONSTRAINT DF_Users_CreationDate +GO +ALTER TABLE dbo.Users + DROP COLUMN Email, Approved, Question, Answer, Comment, CreationDate, LastLoginDate, LastActivityDate, LastPasswordChangedDate, LastLockoutDate +GO +COMMIT diff --git a/Sql/generate_inserts_2005.SQL b/Sql/generate_inserts_2005.SQL new file mode 100644 index 0000000..e5e7005 --- /dev/null +++ b/Sql/generate_inserts_2005.SQL @@ -0,0 +1,481 @@ +SET NOCOUNT ON +GO + +PRINT 'Using Master database' +USE AccFF +GO + +PRINT 'Checking for the existence of this procedure' +IF (SELECT OBJECT_ID('ScriptInserts','P')) IS NOT NULL --means, the procedure already exists + BEGIN + PRINT 'Procedure already exists. So, dropping it' + DROP PROC ScriptInserts + END +GO + +CREATE PROC ScriptInserts +( + @table_name varchar(776), -- The table/view for which the INSERT statements will be generated using the existing data + @target_table varchar(776) = NULL, -- Use this parameter to specify a different table name into which the data will be inserted + @include_column_list bit = 1, -- Use this parameter to include/ommit column list in the generated INSERT statement + @from varchar(800) = NULL, -- Use this parameter to filter the rows based on a filter condition (using WHERE) + @include_timestamp bit = 0, -- Specify 1 for this parameter, if you want to include the TIMESTAMP/ROWVERSION column's data in the INSERT statement + @debug_mode bit = 0, -- If @debug_mode is set to 1, the SQL statements constructed by this procedure will be printed for later examination + @owner varchar(64) = NULL, -- Use this parameter if you are not the owner of the table + @ommit_images bit = 0, -- Use this parameter to generate INSERT statements by omitting the 'image' columns + @ommit_identity bit = 0, -- Use this parameter to ommit the identity columns + @top int = NULL, -- Use this parameter to generate INSERT statements only for the TOP n rows + @cols_to_include varchar(8000) = NULL, -- List of columns to be included in the INSERT statement + @cols_to_exclude varchar(8000) = NULL, -- List of columns to be excluded from the INSERT statement + @disable_constraints bit = 0, -- When 1, disables foreign key constraints and enables them after the INSERT statements + @ommit_computed_cols bit = 0 -- When 1, computed columns will not be included in the INSERT statement + +) +AS +BEGIN + +/*********************************************************************************************************** +Procedure: sp_generate_inserts (Build 22) + (Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.) + +Purpose: To generate INSERT statements from existing data. + These INSERTS can be executed to regenerate the data at some other location. + This procedure is also useful to create a database setup, where in you can + script your data along with your table definitions. + +Written by: Narayana Vyas Kondreddi + http://vyaskn.tripod.com + +Acknowledgements: + Divya Kalra -- For beta testing + Mark Charsley -- For reporting a problem with scripting uniqueidentifier columns with NULL values + Artur Zeygman -- For helping me simplify a bit of code for handling non-dbo owned tables + Joris Laperre -- For reporting a regression bug in handling text/ntext columns + +Tested on: SQL Server 7.0 and SQL Server 2000 and SQL Server 2005 + +Date created: January 17th 2001 21:52 GMT + +Date modified: May 1st 2002 19:50 GMT + +Email: vyaskn@hotmail.com + +NOTE: This procedure may not work with tables with too many columns. + Results can be unpredictable with huge text columns or SQL Server 2000's sql_variant data types + Whenever possible, Use @include_column_list parameter to ommit column list in the INSERT statement, for better results + IMPORTANT: This procedure is not tested with internation data (Extended characters or Unicode). If needed + you might want to convert the datatypes of character variables in this procedure to their respective unicode counterparts + like nchar and nvarchar + + ALSO NOTE THAT THIS PROCEDURE IS NOT UPDATED TO WORK WITH NEW DATA TYPES INTRODUCED IN SQL SERVER 2005 / YUKON + + +Example 1: To generate INSERT statements for table 'titles': + + EXEC sp_generate_inserts 'titles' + +Example 2: To ommit the column list in the INSERT statement: (Column list is included by default) + IMPORTANT: If you have too many columns, you are advised to ommit column list, as shown below, + to avoid erroneous results + + EXEC sp_generate_inserts 'titles', @include_column_list = 0 + +Example 3: To generate INSERT statements for 'titlesCopy' table from 'titles' table: + + EXEC sp_generate_inserts 'titles', 'titlesCopy' + +Example 4: To generate INSERT statements for 'titles' table for only those titles + which contain the word 'Computer' in them: + NOTE: Do not complicate the FROM or WHERE clause here. It's assumed that you are good with T-SQL if you are using this parameter + + EXEC sp_generate_inserts 'titles', @from = "from titles where title like '%Computer%'" + +Example 5: To specify that you want to include TIMESTAMP column's data as well in the INSERT statement: + (By default TIMESTAMP column's data is not scripted) + + EXEC sp_generate_inserts 'titles', @include_timestamp = 1 + +Example 6: To print the debug information: + + EXEC sp_generate_inserts 'titles', @debug_mode = 1 + +Example 7: If you are not the owner of the table, use @owner parameter to specify the owner name + To use this option, you must have SELECT permissions on that table + + EXEC sp_generate_inserts Nickstable, @owner = 'Nick' + +Example 8: To generate INSERT statements for the rest of the columns excluding images + When using this otion, DO NOT set @include_column_list parameter to 0. + + EXEC sp_generate_inserts imgtable, @ommit_images = 1 + +Example 9: To generate INSERT statements excluding (ommiting) IDENTITY columns: + (By default IDENTITY columns are included in the INSERT statement) + + EXEC sp_generate_inserts mytable, @ommit_identity = 1 + +Example 10: To generate INSERT statements for the TOP 10 rows in the table: + + EXEC sp_generate_inserts mytable, @top = 10 + +Example 11: To generate INSERT statements with only those columns you want: + + EXEC sp_generate_inserts titles, @cols_to_include = "'title','title_id','au_id'" + +Example 12: To generate INSERT statements by omitting certain columns: + + EXEC sp_generate_inserts titles, @cols_to_exclude = "'title','title_id','au_id'" + +Example 13: To avoid checking the foreign key constraints while loading data with INSERT statements: + + EXEC sp_generate_inserts titles, @disable_constraints = 1 + +Example 14: To exclude computed columns from the INSERT statement: + EXEC sp_generate_inserts MyTable, @ommit_computed_cols = 1 +***********************************************************************************************************/ + +SET NOCOUNT ON + +--Making sure user only uses either @cols_to_include or @cols_to_exclude +IF ((@cols_to_include IS NOT NULL) AND (@cols_to_exclude IS NOT NULL)) + BEGIN + RAISERROR('Use either @cols_to_include or @cols_to_exclude. Do not use both the parameters at once',16,1) + RETURN -1 --Failure. Reason: Both @cols_to_include and @cols_to_exclude parameters are specified + END + +--Making sure the @cols_to_include and @cols_to_exclude parameters are receiving values in proper format +IF ((@cols_to_include IS NOT NULL) AND (PATINDEX('''%''',@cols_to_include) = 0)) + BEGIN + RAISERROR('Invalid use of @cols_to_include property',16,1) + PRINT 'Specify column names surrounded by single quotes and separated by commas' + PRINT 'Eg: EXEC ScriptInserts titles, @cols_to_include = "''title_id'',''title''"' + RETURN -1 --Failure. Reason: Invalid use of @cols_to_include property + END + +IF ((@cols_to_exclude IS NOT NULL) AND (PATINDEX('''%''',@cols_to_exclude) = 0)) + BEGIN + RAISERROR('Invalid use of @cols_to_exclude property',16,1) + PRINT 'Specify column names surrounded by single quotes and separated by commas' + PRINT 'Eg: EXEC ScriptInserts titles, @cols_to_exclude = "''title_id'',''title''"' + RETURN -1 --Failure. Reason: Invalid use of @cols_to_exclude property + END + + +--Checking to see if the database name is specified along wih the table name +--Your database context should be local to the table for which you want to generate INSERT statements +--specifying the database name is not allowed +IF (PARSENAME(@table_name,3)) IS NOT NULL + BEGIN + RAISERROR('Do not specify the database name. Be in the required database and just specify the table name.',16,1) + RETURN -1 --Failure. Reason: Database name is specified along with the table name, which is not allowed + END + +--Checking for the existence of 'user table' or 'view' +--This procedure is not written to work on system tables +--To script the data in system tables, just create a view on the system tables and script the view instead + +IF @owner IS NULL + BEGIN + IF ((OBJECT_ID(@table_name,'U') IS NULL) AND (OBJECT_ID(@table_name,'V') IS NULL)) + BEGIN + RAISERROR('User table or view not found.',16,1) + PRINT 'You may see this error, if you are not the owner of this table or view. In that case use @owner parameter to specify the owner name.' + PRINT 'Make sure you have SELECT permission on that table or view.' + RETURN -1 --Failure. Reason: There is no user table or view with this name + END + END +ELSE + BEGIN + IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @table_name AND (TABLE_TYPE = 'BASE TABLE' OR TABLE_TYPE = 'VIEW') AND TABLE_SCHEMA = @owner) + BEGIN + RAISERROR('User table or view not found.',16,1) + PRINT 'You may see this error, if you are not the owner of this table. In that case use @owner parameter to specify the owner name.' + PRINT 'Make sure you have SELECT permission on that table or view.' + RETURN -1 --Failure. Reason: There is no user table or view with this name + END + END + +--Variable declarations +DECLARE @Column_ID int, + @Column_List varchar(8000), + @Column_Name varchar(128), + @Start_Insert varchar(786), + @Data_Type varchar(128), + @Actual_Values varchar(8000), --This is the string that will be finally executed to generate INSERT statements + @IDN varchar(128) --Will contain the IDENTITY column's name in the table + +--Variable Initialization +SET @IDN = '' +SET @Column_ID = 0 +SET @Column_Name = '' +SET @Column_List = '' +SET @Actual_Values = '' + +IF @owner IS NULL + BEGIN + SET @Start_Insert = 'INSERT INTO ' + '[' + RTRIM(COALESCE(@target_table,@table_name)) + ']' + END +ELSE + BEGIN + SET @Start_Insert = 'INSERT ' + '[' + LTRIM(RTRIM(@owner)) + '].' + '[' + RTRIM(COALESCE(@target_table,@table_name)) + ']' + END + + +--To get the first column's ID + +SELECT @Column_ID = MIN(ORDINAL_POSITION) +FROM INFORMATION_SCHEMA.COLUMNS (NOLOCK) +WHERE TABLE_NAME = @table_name AND +(@owner IS NULL OR TABLE_SCHEMA = @owner) + + + +--Loop through all the columns of the table, to get the column names and their data types +WHILE @Column_ID IS NOT NULL + BEGIN + SELECT @Column_Name = QUOTENAME(COLUMN_NAME), + @Data_Type = DATA_TYPE + FROM INFORMATION_SCHEMA.COLUMNS (NOLOCK) + WHERE ORDINAL_POSITION = @Column_ID AND + TABLE_NAME = @table_name AND + (@owner IS NULL OR TABLE_SCHEMA = @owner) + + + + IF @cols_to_include IS NOT NULL --Selecting only user specified columns + BEGIN + IF CHARINDEX( '''' + SUBSTRING(@Column_Name,2,LEN(@Column_Name)-2) + '''',@cols_to_include) = 0 + BEGIN + GOTO SKIP_LOOP + END + END + + IF @cols_to_exclude IS NOT NULL --Selecting only user specified columns + BEGIN + IF CHARINDEX( '''' + SUBSTRING(@Column_Name,2,LEN(@Column_Name)-2) + '''',@cols_to_exclude) <> 0 + BEGIN + GOTO SKIP_LOOP + END + END + + --Making sure to output SET IDENTITY_INSERT ON/OFF in case the table has an IDENTITY column + IF (SELECT COLUMNPROPERTY( OBJECT_ID(QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + @table_name),SUBSTRING(@Column_Name,2,LEN(@Column_Name) - 2),'IsIdentity')) = 1 + BEGIN + IF @ommit_identity = 0 --Determing whether to include or exclude the IDENTITY column + SET @IDN = @Column_Name + ELSE + GOTO SKIP_LOOP + END + + --Making sure whether to output computed columns or not + IF @ommit_computed_cols = 1 + BEGIN + IF (SELECT COLUMNPROPERTY( OBJECT_ID(QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + @table_name),SUBSTRING(@Column_Name,2,LEN(@Column_Name) - 2),'IsComputed')) = 1 + BEGIN + GOTO SKIP_LOOP + END + END + + --Tables with columns of IMAGE data type are not supported for obvious reasons + IF(@Data_Type in ('image')) + BEGIN + IF (@ommit_images = 0) + BEGIN + RAISERROR('Tables with image columns are not supported.',16,1) + PRINT 'Use @ommit_images = 1 parameter to generate INSERTs for the rest of the columns.' + PRINT 'DO NOT ommit Column List in the INSERT statements. If you ommit column list using @include_column_list=0, the generated INSERTs will fail.' + RETURN -1 --Failure. Reason: There is a column with image data type + END + ELSE + BEGIN + GOTO SKIP_LOOP + END + END + + --Determining the data type of the column and depending on the data type, the VALUES part of + --the INSERT statement is generated. Care is taken to handle columns with NULL values. Also + --making sure, not to lose any data from flot, real, money, smallmomey, datetime columns + SET @Actual_Values = @Actual_Values + + CASE + WHEN @Data_Type IN ('char','varchar','nchar','nvarchar') + THEN + 'COALESCE('''''''' + REPLACE(RTRIM(' + @Column_Name + '),'''''''','''''''''''')+'''''''',''NULL'')' + WHEN @Data_Type IN ('datetime','smalldatetime') + THEN + 'COALESCE('''''''' + RTRIM(CONVERT(char,' + @Column_Name + ',109))+'''''''',''NULL'')' + WHEN @Data_Type IN ('uniqueidentifier') + THEN + 'COALESCE('''''''' + REPLACE(CONVERT(char(255),RTRIM(' + @Column_Name + ')),'''''''','''''''''''')+'''''''',''NULL'')' + WHEN @Data_Type IN ('text','ntext') + THEN + 'COALESCE('''''''' + REPLACE(CONVERT(char(8000),' + @Column_Name + '),'''''''','''''''''''')+'''''''',''NULL'')' + WHEN @Data_Type IN ('binary','varbinary') + THEN + 'COALESCE(RTRIM(CONVERT(char,' + 'CONVERT(int,' + @Column_Name + '))),''NULL'')' + WHEN @Data_Type IN ('timestamp','rowversion') + THEN + CASE + WHEN @include_timestamp = 0 + THEN + '''DEFAULT''' + ELSE + 'COALESCE(RTRIM(CONVERT(char,' + 'CONVERT(int,' + @Column_Name + '))),''NULL'')' + END + WHEN @Data_Type IN ('float','real','money','smallmoney') + THEN + 'COALESCE(LTRIM(RTRIM(' + 'CONVERT(char, ' + @Column_Name + ',2)' + ')),''NULL'')' + ELSE + 'COALESCE(LTRIM(RTRIM(' + 'CONVERT(char, ' + @Column_Name + ')' + ')),''NULL'')' + END + '+' + ''',''' + ' + ' + + --Generating the column list for the INSERT statement + SET @Column_List = @Column_List + @Column_Name + ',' + + SKIP_LOOP: --The label used in GOTO + + SELECT @Column_ID = MIN(ORDINAL_POSITION) + FROM INFORMATION_SCHEMA.COLUMNS (NOLOCK) + WHERE TABLE_NAME = @table_name AND + ORDINAL_POSITION > @Column_ID AND + (@owner IS NULL OR TABLE_SCHEMA = @owner) + + + --Loop ends here! + END + +--To get rid of the extra characters that got concatenated during the last run through the loop +SET @Column_List = LEFT(@Column_List,len(@Column_List) - 1) +SET @Actual_Values = LEFT(@Actual_Values,len(@Actual_Values) - 6) + +IF LTRIM(@Column_List) = '' + BEGIN + RAISERROR('No columns to select. There should at least be one column to generate the output',16,1) + RETURN -1 --Failure. Reason: Looks like all the columns are ommitted using the @cols_to_exclude parameter + END + +--Forming the final string that will be executed, to output the INSERT statements +IF (@include_column_list <> 0) + BEGIN + SET @Actual_Values = + 'SELECT ' + + CASE WHEN @top IS NULL OR @top < 0 THEN '' ELSE ' TOP ' + LTRIM(STR(@top)) + ' ' END + + '''' + RTRIM(@Start_Insert) + + ' ''+' + '''(' + RTRIM(@Column_List) + '''+' + ''')''' + + ' +''VALUES(''+ ' + @Actual_Values + '+'')''' + ' ' + + COALESCE(@from,' FROM ' + CASE WHEN @owner IS NULL THEN '' ELSE '[' + LTRIM(RTRIM(@owner)) + '].' END + '[' + rtrim(@table_name) + ']' + '(NOLOCK)') + END +ELSE IF (@include_column_list = 0) + BEGIN + SET @Actual_Values = + 'SELECT ' + + CASE WHEN @top IS NULL OR @top < 0 THEN '' ELSE ' TOP ' + LTRIM(STR(@top)) + ' ' END + + '''' + RTRIM(@Start_Insert) + + ' '' +''VALUES(''+ ' + @Actual_Values + '+'')''' + ' ' + + COALESCE(@from,' FROM ' + CASE WHEN @owner IS NULL THEN '' ELSE '[' + LTRIM(RTRIM(@owner)) + '].' END + '[' + rtrim(@table_name) + ']' + '(NOLOCK)') + END + +--Determining whether to ouput any debug information +IF @debug_mode =1 + BEGIN + PRINT '/*****START OF DEBUG INFORMATION*****' + PRINT 'Beginning of the INSERT statement:' + PRINT @Start_Insert + PRINT '' + PRINT 'The column list:' + PRINT @Column_List + PRINT '' + PRINT 'The SELECT statement executed to generate the INSERTs' + PRINT @Actual_Values + PRINT '' + PRINT '*****END OF DEBUG INFORMATION*****/' + PRINT '' + END + +PRINT '--INSERTs generated by ''ScriptInserts'' stored procedure written by Vyas' +PRINT '--Build number: 22' +PRINT '--Problems/Suggestions? Contact Vyas @ vyaskn@hotmail.com' +PRINT '--http://vyaskn.tripod.com' +PRINT '' +PRINT 'SET NOCOUNT ON' +PRINT '' + + +--Determining whether to print IDENTITY_INSERT or not +IF (@IDN <> '') + BEGIN + PRINT 'SET IDENTITY_INSERT ' + QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + QUOTENAME(@table_name) + ' ON' + PRINT 'GO' + PRINT '' + END + + +IF @disable_constraints = 1 AND (OBJECT_ID(QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + @table_name, 'U') IS NOT NULL) + BEGIN + IF @owner IS NULL + BEGIN + SELECT 'ALTER TABLE ' + QUOTENAME(COALESCE(@target_table, @table_name)) + ' NOCHECK CONSTRAINT ALL' AS '--Code to disable constraints temporarily' + END + ELSE + BEGIN + SELECT 'ALTER TABLE ' + QUOTENAME(@owner) + '.' + QUOTENAME(COALESCE(@target_table, @table_name)) + ' NOCHECK CONSTRAINT ALL' AS '--Code to disable constraints temporarily' + END + + PRINT 'GO' + END + +PRINT '' +PRINT 'PRINT ''Inserting values into ' + '[' + RTRIM(COALESCE(@target_table,@table_name)) + ']' + '''' + + +--All the hard work pays off here!!! You'll get your INSERT statements, when the next line executes! +EXEC (@Actual_Values) + +PRINT 'PRINT ''Done''' +PRINT '' + + +IF @disable_constraints = 1 AND (OBJECT_ID(QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + @table_name, 'U') IS NOT NULL) + BEGIN + IF @owner IS NULL + BEGIN + SELECT 'ALTER TABLE ' + QUOTENAME(COALESCE(@target_table, @table_name)) + ' CHECK CONSTRAINT ALL' AS '--Code to enable the previously disabled constraints' + END + ELSE + BEGIN + SELECT 'ALTER TABLE ' + QUOTENAME(@owner) + '.' + QUOTENAME(COALESCE(@target_table, @table_name)) + ' CHECK CONSTRAINT ALL' AS '--Code to enable the previously disabled constraints' + END + + PRINT 'GO' + END + +PRINT '' +IF (@IDN <> '') + BEGIN + PRINT 'SET IDENTITY_INSERT ' + QUOTENAME(COALESCE(@owner,USER_NAME())) + '.' + QUOTENAME(@table_name) + ' OFF' + PRINT 'GO' + END + +PRINT 'SET NOCOUNT OFF' + + +SET NOCOUNT OFF +RETURN 0 --Success. We are done! +END + +GO + +PRINT 'Created the procedure' +GO + + +--Mark procedure as system object +EXEC sys.sp_MS_marksystemobject ScriptInserts +GO + +PRINT 'Granting EXECUTE permission on ScriptInserts to all users' +GRANT EXEC ON ScriptInserts TO public + +SET NOCOUNT OFF +GO + +PRINT 'Done' \ No newline at end of file diff --git a/Tanshu.Accounts.BI/AdvanceBI.cs b/Tanshu.Accounts.BI/AdvanceBI.cs new file mode 100644 index 0000000..5d34f7a --- /dev/null +++ b/Tanshu.Accounts.BI/AdvanceBI.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using System.Data.SqlClient; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class AdvanceBI : IAdvanceBI + { + public void Insert(AdvanceBO advance) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IAdvanceDAO dao = factory.GetAdvanceDAO(connection)) + { + dao.Insert(advance); + } + } + } + public List GetAdvances(DateTime fromDate, DateTime toDate, bool all) + { + fromDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", fromDate)); + toDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", toDate)); + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IAdvanceDAO dao = factory.GetAdvanceDAO(connection)) + { + return dao.GetAdvances(fromDate, toDate, all); + } + } + } + public void Adjust(Guid advanceID, Guid userID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IAdvanceDAO dao = factory.GetAdvanceDAO(connection)) + { + + dao.Adjust(advanceID, userID); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/CheckoutBI.cs b/Tanshu.Accounts.BI/CheckoutBI.cs new file mode 100644 index 0000000..28cdc97 --- /dev/null +++ b/Tanshu.Accounts.BI/CheckoutBI.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.Threading; +using System.Data.SqlClient; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class CheckoutBI + { + #region Properties + public decimal Opening { get; private set; } + public decimal Receipts { get; private set; } + public decimal AdvanceReceipts { get; private set; } + public decimal CCReceipts { get; private set; } + public decimal AdvanceAdjusted { get; private set; } + public decimal CashPayments { get; private set; } + public decimal AdditionalVoids { get; private set; } + public decimal VoidsInSystem { get; private set; } + public decimal PendingBills { get; private set; } + public decimal NetSales { get; private set; } + public decimal ClosingBalance { get; private set; } + public decimal RetainedOvernight { get; private set; } + public decimal CashDeposited { get; private set; } // + public decimal Excess { get; private set; } // + public string Status { get; private set; } // + public string Cashiers { get; private set; } // + public Guid CashierID { get; private set; } // + public string Cashier { get; private set; } // + + public decimal OldPending { get; private set; } + public decimal OldReceipts { get; private set; } + public decimal OldVoided { get; private set; } + + public DateTime StartDate { get; private set; } // + public DateTime FinishDate { get; private set; } // + + private string pendingString; + public string PendingString + { + get { return pendingString; } + } + private string cCString; + public string CCString + { + get { return cCString; } + } + private string voidsString; + public string VoidsString + { + get { return voidsString; } + } + private string discountString; + public string DiscountString + { + get { return discountString; } + } + + //public string PendingString { get; private set; } // + //public string CCString { get; private set; } // + //public string VoidsString { get; private set; } + //public string DiscountString { get; private set; } + + public string PaymentString { get; private set; } // + public string Manager + { + get { return Thread.CurrentPrincipal.Identity.Name; } + } + #endregion + + public CheckoutBI(Guid cashier, DateTime startDate, DateTime finishDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICheckoutDAO dao = factory.GetCheckoutDAO(startDate, finishDate, cashier, connection)) + { + //Actual Closing + this.CashierID = cashier; + this.StartDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", startDate)); + this.FinishDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", finishDate)); + + Cashier = new UserBI().GetUser(CashierID).Name; + PendingBills = dao.GetPending(ref pendingString); + CCReceipts = dao.GetCreditCard(ref cCString); + VoidsInSystem = dao.GetVoids(ref voidsString); + Opening = dao.GetOpenings(); + Receipts = dao.GetReceipts(); + CashPayments = dao.GetPayments(); + AdditionalVoids = dao.GetAdditionalVoids(); + RetainedOvernight = dao.GetRetainedOvernight(); + AdvanceReceipts = dao.GetAdvancesReceived(); + AdvanceAdjusted = dao.GetAdvancesAdjusted(); + PaymentString = dao.GetPaymentString(); + + OldPending = dao.GetOldPending(); + OldReceipts = dao.GetOldReceipts(); + OldVoided = dao.GetOldVoided(); + + + Cashiers = dao.GetActiveCashiers(); + NetSales = dao.GetNetSales(); + dao.GetDiscountsBills(ref discountString); + ClosingBalance = Opening + + Receipts + + AdvanceReceipts + - CCReceipts + - AdvanceAdjusted + - CashPayments + - AdditionalVoids + + NetSales; + } + } + } + public void Calculate(decimal cashDeposited, decimal retainedOvernight) + { + this.CashDeposited = cashDeposited; + this.RetainedOvernight = retainedOvernight; + Excess = CashDeposited - ClosingBalance; + Status = string.Format("{0:Extra Cash Rs #,##0.00; Cash Short Rs #,##0.00;Cash Perfect}", Excess); + } + } + +} diff --git a/Tanshu.Accounts.BI/CustomerBI.cs b/Tanshu.Accounts.BI/CustomerBI.cs new file mode 100644 index 0000000..e9ca547 --- /dev/null +++ b/Tanshu.Accounts.BI/CustomerBI.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using Tanshu.Accounts.Contracts; +using System.Data.SqlClient; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + + +namespace Tanshu.Accounts.BI +{ + public class CustomerBI : ICustomerBI + { + + public List GetCustomerLedgers() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + return dao.GetCustomerLedgers(); + } + } + } + public CustomerBO GetCustomer(Guid customerID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + return dao.GetCustomer(customerID); + } + } + + } + public List GetFilteredCustomers(Dictionary filter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + return dao.GetFilteredCustomers(filter); + } + } + } + public List GetCustomers() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + return dao.GetCustomers(); + } + } + } + public List GetSingleCustomers(Guid customerID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + return dao.GetCustomers(customerID); + } + } + } + public bool Update(CustomerBO customer) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + dao.Update(customer); + return true; + } + } + } + public bool Delete(Guid customerID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + dao.Delete(customerID); + return true; + } + } + } + public bool Insert(CustomerBO customer) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ICustomerDAO dao = factory.GetCustomerDAO(connection)) + { + dao.Insert(customer); + return true; + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/LedgerBI.cs b/Tanshu.Accounts.BI/LedgerBI.cs new file mode 100644 index 0000000..f6f99c9 --- /dev/null +++ b/Tanshu.Accounts.BI/LedgerBI.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using System.Data.SqlClient; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class LedgerBI : ILedgerBI + { + public LedgerBO GetLedger(Guid ledgerID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.GetLedger(ledgerID); + } + } + } + public LedgerBO GetLedgerByName(string name) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.GetLedger(name); + } + } + } + public bool Insert(LedgerBO ledger) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.Insert(ledger); + } + } + } + public bool Update(LedgerBO ledger) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.Update(ledger); + } + } + } + public List GetLedgers() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.GetLedgers(); + } + } + } + public List GetLedgersOfType(char type) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ILedgerDAO dao = factory.GetLedgerDAO(connection)) + { + return dao.GetLedgers(type); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/ManagementBI.cs b/Tanshu.Accounts.BI/ManagementBI.cs new file mode 100644 index 0000000..556f2af --- /dev/null +++ b/Tanshu.Accounts.BI/ManagementBI.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class ManagementBI + { + public decimal GetBalance(decimal? tax, DateTime startDate, DateTime endDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection)) + { + return dao.GetBalance(tax); + } + } + } + public List GetUpdateBillList(decimal tax, bool voided, bool paid, bool creditCard, DateTime startDate, DateTime endDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection)) + { + return dao.GetUpdateBillList(tax, voided, paid, creditCard); + } + } + } + public decimal Update(Guid voucherID, decimal tax, DateTime startDate, DateTime endDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection)) + { + return dao.Update(voucherID, tax); + } + } + } + + public void Reorder(DateTime startDate, DateTime endDate, ShowProgessDelegate showProgressDelegate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection)) + { + dao.Reorder(showProgressDelegate); + } + } + } + + + public bool MergeData(DateTime startDate, DateTime endDate, string sourceDB, string targetDB) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection)) + { + return dao.MergeData(sourceDB, targetDB); + } + } + } + public List GetPaidBills(DateTime startDate, DateTime finishDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IManagementDAO dao = factory.GetManagementDAO(startDate, finishDate, connection)) + { + return dao.GetPaidBills(); + } + } + } + } +} + + + diff --git a/Tanshu.Accounts.BI/MembershipBI.cs b/Tanshu.Accounts.BI/MembershipBI.cs new file mode 100644 index 0000000..3390e29 --- /dev/null +++ b/Tanshu.Accounts.BI/MembershipBI.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class MembershipBI : IMembershipBI + { + public bool ValidateUser(string name, string password) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + return dao.ValidateUser(name, password); + } + } + } + + public void AddUsersToRoles(string[] usernames, string[] roleNames) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + dao.AddUsersToRoles(usernames, roleNames); + } + } + } + + public string[] GetAllRoles() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + return dao.GetAllRoles(); + } + } + } + + public string[] GetRolesForUser(string username) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + return dao.GetRolesForUser(username); + } + } + } + + public bool IsUserInRole(string username, string roleName) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + if (!dao.RoleExists(roleName)) + throw new Exception(string.Format("Role {0} does not exist in the database", roleName)); + return dao.IsUserInRole(username, roleName); + } + } + } + + public bool IsUserInRole(Guid userID, string roleName) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + if (!dao.RoleExists(roleName)) + throw new Exception(string.Format("Role {0} does not exist in the database", roleName)); + return dao.IsUserInRole(userID, roleName); + } + } + } + + public void RemoveUsersFromRoles(string[] usernames, string[] roleNames) + { + if ((roleNames.Length > 0) || (usernames.Length > 0)) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + dao.RemoveUsersFromRoles(usernames, roleNames); + } + } + } + } + + public UserBO GetUserFromName(string name) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IMembershipDAO dao = factory.GetMembershipDAO(connection)) + { + return dao.GetUserFromName(name); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/PaymentBI.cs b/Tanshu.Accounts.BI/PaymentBI.cs new file mode 100644 index 0000000..c6c4124 --- /dev/null +++ b/Tanshu.Accounts.BI/PaymentBI.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using System.Data.SqlClient; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class PaymentBI : IPaymentBI + { + public void Insert(PaymentBO payment) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IPaymentDAO dao = factory.GetPaymentDAO(connection)) + { + dao.Insert(payment); + } + } + } + public List GetPayments(Guid? userID, DateTime fromDate, DateTime toDate) + { + fromDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", fromDate)); + toDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", toDate)); + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IPaymentDAO dao = factory.GetPaymentDAO(connection)) + { + return dao.GetPayments(userID, fromDate, toDate); + } + } + } + public void Delete(Guid paymentID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IPaymentDAO dao = factory.GetPaymentDAO(connection)) + { + dao.Delete(paymentID); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/ProductBI.cs b/Tanshu.Accounts.BI/ProductBI.cs new file mode 100644 index 0000000..21dcea1 --- /dev/null +++ b/Tanshu.Accounts.BI/ProductBI.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using System.Data.SqlClient; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class ProductBI : IProductBI + { + public bool Insert(ProductBO product) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.Insert(product); + } + } + } + public bool Update(ProductBO product) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.Update(product); + } + } + } + public bool Delete(Guid productID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.Delete(productID); + } + } + } + public ProductBO GetProductFromName(string nameAndUnits) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetProduct(nameAndUnits); + } + } + } + public ProductBO GetProduct(Guid productID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetProduct(productID); + } + } + } + public decimal GetProductStock(DateTime date, Guid productID, Guid? voucherID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetProductStock(date, productID, voucherID); + } + } + } + public List GetProducts() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetProducts(); + } + } + } + + public List GetFilteredProducts(Dictionary filter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetFilteredProducts(filter); + } + } + } + + public void UpdateShortName() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + dao.UpdateShortName(); + } + } + } + + public List GetUnFilteredProducts() + { + Dictionary filter = new Dictionary(); + filter.Add("Name", ""); + filter.Add("Type", ""); + return GetFilteredProducts(filter); + } + public List GetProductTypes() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IProductDAO dao = factory.GetProductDAO(connection)) + { + return dao.GetProductTypes(); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/Properties/AssemblyInfo.cs b/Tanshu.Accounts.BI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8854534 --- /dev/null +++ b/Tanshu.Accounts.BI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.Accounts.LiteDBService")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.Accounts.LiteDBService")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("70c26187-076c-49a3-8cf1-faa4ba15fc82")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.BI/RoleBI.cs b/Tanshu.Accounts.BI/RoleBI.cs new file mode 100644 index 0000000..fc31dd1 --- /dev/null +++ b/Tanshu.Accounts.BI/RoleBI.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; + +namespace Tanshu.Accounts.BI +{ + public delegate bool AuthenticateUser(out string userName); + public class RoleBI : IDisposable + { + string roleID; + Guid userID; + bool elevated; + AccountsPrincipal originalUser; + AuthenticateUser authenticateUser; + public RoleBI(string roleID, Guid userID) + { + this.roleID = roleID; + this.userID = userID; + elevated = false; + originalUser = null; + authenticateUser = null; + } + public bool IsAllowed + { + get + { + return new MembershipBI().IsUserInRole(userID, roleID); + } + } + + public bool IsElevated + { + get + { + return elevated; + } + } + + public void Evelvate(AuthenticateUser authenticateUser) + { + this.authenticateUser = authenticateUser; + string userName; + if (this.authenticateUser(out userName)) + { + originalUser = (AccountsPrincipal)Thread.CurrentPrincipal; + SetElevation(userName); + } + } + private void SetElevation(string userName) + { + if (userName.Contains(":")) + userName = userName.Substring(userName.IndexOf(":") + 1); + + AccountsPrincipal principal = AccountsPrincipal.CreateAccountsPrincipal(new Tanshu.Accounts.BI.MembershipBI().GetRolesForUser(userName), + new MembershipBI().GetUserFromName(userName)); + + // bind the generic principal to the thread + Thread.CurrentPrincipal = principal; + userName = ((AccountsIdentity)principal.Identity).UserInfo.Name; + userID = ((AccountsIdentity)principal.Identity).UserInfo.UserID; + elevated = true; + } + + public void Dispose() + { + if (elevated) + { + Thread.CurrentPrincipal = originalUser; + } + } + } +} diff --git a/Tanshu.Accounts.BI/SaleVoucherBI.cs b/Tanshu.Accounts.BI/SaleVoucherBI.cs new file mode 100644 index 0000000..e481aa1 --- /dev/null +++ b/Tanshu.Accounts.BI/SaleVoucherBI.cs @@ -0,0 +1,224 @@ +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class SaleVoucherBI : ISaleVoucherBI + { + public SalesBillItemBO GetDefaultSaleBillItem(Guid productID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.GetDefaultSaleBillItem(productID); + } + } + } + public decimal GetProductDiscountLimit(Guid productID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.GetProductDiscountLimit(productID); + } + } + } + public bool IsBillPrinted(Guid voucherID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.IsBillPrinted(voucherID); + } + } + } + public bool Insert(SaleVoucherBO saleVoucher, List inventory) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IVoucherDAO vdao = factory.GetVoucherDAO(connection)) + { + using (ISaleVoucherDAO svdao = factory.GetSaleVoucherDAO(connection)) + { + using (IInventoryDAO idao = factory.GetInventoryDAO(connection)) + { + connection.BeginTransaction(); + #region Voucher + VoucherBO myVoucher = (VoucherBO)saleVoucher; + myVoucher.Date = null; + vdao.Insert(myVoucher); + #endregion + #region Transaction Sale + svdao.Insert(saleVoucher); + #endregion + #region Inventory + foreach (InventoryBO i in inventory) + { + i.VoucherID = saleVoucher.VoucherID; + InventoryBO myInventory = i; + idao.Insert(myInventory); + } + #endregion + connection.CommitTransaction(); + return true; + } + } + } + } + } + public bool Update(SaleVoucherBO saleVoucher, List inventory) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IVoucherDAO vdao = factory.GetVoucherDAO(connection)) + { + using (ISaleVoucherDAO svdao = factory.GetSaleVoucherDAO(connection)) + { + using (IInventoryDAO idao = factory.GetInventoryDAO(connection)) + { + connection.BeginTransaction(); + #region Voucher + VoucherBO myVoucher = (VoucherBO)saleVoucher; + vdao.Update(myVoucher); + #endregion + #region Transaction Sale + svdao.Update(saleVoucher); + #endregion + #region Inventory + idao.Delete(saleVoucher.VoucherID); + foreach (InventoryBO i in inventory) + { + i.VoucherID = saleVoucher.VoucherID; + InventoryBO myInventory = i; + idao.Insert(myInventory); + } + #endregion + connection.CommitTransaction(); + return true; + } + } + } + } + } + public bool GetSaleVoucher(Guid voucherID, ref SaleVoucherBO voucherSale, ref List iList) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherDAO svdao = factory.GetSaleVoucherDAO(connection)) + { + using (IInventoryDAO idao = factory.GetInventoryDAO(connection)) + { + voucherSale = svdao.GetVoucherSale(voucherID); + iList = idao.GetInventories(voucherID); + return true; + } + } + } + } + + public List GetPendingBills(PendingType list) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.GetPendingBills(list); + } + } + } + + public Guid? GetPendingVoucherID(string tableID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.GetPendingVoucherID(tableID); + } + } + } + public List SaleInventory(Dictionary.ValueCollection list, Guid? voucherID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + return dao.SaleInventory(list, voucherID); + } + } + } + public void GetComplexBillInformation(Guid voucherID, Guid complexProductID, ref decimal rate, ref decimal quantity, ref string name) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + dao.GetComplexBillInformation(voucherID, complexProductID, ref rate, ref quantity, ref name); + } + } + } + public void SetAlarm(Guid voucherID, DateTime? alarmTime) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherDAO dao = factory.GetSaleVoucherDAO(connection)) + { + dao.SetAlarm(voucherID, alarmTime); + } + } + } + public void VoidBill(Guid voucherID, string reason) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherDAO dao = factory.GetSaleVoucherDAO(connection)) + { + dao.VoidBill(voucherID, reason); + } + } + } + + public void DeclareBillsPaid(Guid userID, List billList, bool creditCard) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + dao.DeclareBillsPaid(userID, billList, creditCard); + } + } + } + + public void ToggleImportant(Guid voucherID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISaleVoucherMixDAO dao = factory.GetSaleVoucherMixDAO(connection)) + { + dao.ToggleImportant(voucherID); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/SalesAnalysisBI.cs b/Tanshu.Accounts.BI/SalesAnalysisBI.cs new file mode 100644 index 0000000..a170a14 --- /dev/null +++ b/Tanshu.Accounts.BI/SalesAnalysisBI.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class SalesAnalysisBI : ISalesAnalysisBI + { + public List GetSaleDetail(DateTime startDate, DateTime finishDate, Guid costCenterID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISalesAnalysisDAO dao = factory.GetSalesAnalysisDAO(connection)) + { + return dao.GetSaleDetail(startDate, finishDate, costCenterID); + } + } + } + public List GetSale(DateTime startDate, DateTime finishDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISalesAnalysisDAO dao = factory.GetSalesAnalysisDAO(connection)) + { + return dao.GetSale(startDate, finishDate); + } + } + } + public void GetAdditionalInfo(ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax, DateTime startDate, DateTime finishDate) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISalesAnalysisDAO dao = factory.GetSalesAnalysisDAO(connection)) + { + dao.GetAdditionalInfo(ref freeSale, ref voids, ref pending, ref net, ref tax, startDate, finishDate); + } + } + } + public List GetSalesTaxReturn(DateTime startDate, DateTime finishDate, ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (ISalesAnalysisDAO dao = factory.GetSalesAnalysisDAO(connection)) + { + return dao.GetSalesTaxReturn(startDate, finishDate, ref freeSale, ref voids, ref pending, ref net, ref tax); + } + } + } + } +} diff --git a/Tanshu.Accounts.BI/SecurityBI.cs b/Tanshu.Accounts.BI/SecurityBI.cs new file mode 100644 index 0000000..61912e0 --- /dev/null +++ b/Tanshu.Accounts.BI/SecurityBI.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections; +using System.Security.Principal; +using System.Globalization; +using System.Threading; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.BI +{ + public class AccountsIdentity : IIdentity + { + // the authentication type for us is always database + private static string AuthenticationTypeString = "Database"; + + // hash table with all the user info we have + private UserBO userInfo; + + // create the user identity; all user information is in the + // hashtable passed along + private AccountsIdentity(UserBO UserInfo) + { + this.userInfo = UserInfo; + } + + //create a user identity and return it to the caller + public static AccountsIdentity CreateUserIdentity(UserBO UserInfo) + { + return new AccountsIdentity(UserInfo); + } + // returns the name of the identity + public string Name { get { return UserInfo.Name; } } + + // returns the userID of the identity + public UserBO UserInfo { get { return userInfo; } } + + // returns whether or not identity is authenticated + public bool IsAuthenticated { get { return true; } } + + // the type of authentication + public string AuthenticationType { get { return AuthenticationTypeString; } } + } + public class AccountsPrincipal : IPrincipal + { + // stores the list of roles user has + private string[] userRoles; + + // the user identity we create and associate with this principal + private AccountsIdentity userIdentity; + + // constructor: stores role and permission info and creates + // custom identity + private AccountsPrincipal(string[] userRoles, UserBO userInfo) + { + this.userRoles = userRoles; + + // creates the IIdentity for the user and associates it with + // this IPrincipal + userIdentity = AccountsIdentity.CreateUserIdentity(userInfo); + } + + // create the security principal and return it to the caller + public static AccountsPrincipal CreateAccountsPrincipal(string[] userRoles, UserBO userInfo) + { + return new AccountsPrincipal(userRoles, userInfo); + } + // returns the Identity object associated with the principal + public IIdentity Identity + { + get + { + return userIdentity; + } + } + + // checks whether user belongs to role + public bool IsInRole(string Role) + { + //return userRoles.Where(ur => ur.ToLower() == Role.ToLower()).Count() > 1; + return (userRoles.Where(ur => ur.Trim().ToLower() == Role.Trim().ToLower()).Count() > 0 ? true : false); + } + } + public static class CurrentUser + { + public static UserBO user + { + get + { + AccountsIdentity identity = (AccountsIdentity)Thread.CurrentPrincipal.Identity; + return identity.UserInfo; + } + } + } + +} diff --git a/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj b/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj new file mode 100644 index 0000000..5d03b9f --- /dev/null +++ b/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj @@ -0,0 +1,108 @@ + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB} + Library + Properties + Tanshu.Accounts.BI + Tanshu.Accounts.BI + {3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + /client:"WcfTestClient.exe" + v3.5 + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + + 3.0 + + + 3.0 + + + + + 3.5 + + + False + ..\Include\Tanshu.Common.dll + + + False + ..\Include\Tanshu.Data.dll + + + False + ..\Include\Tanshu.Logging.dll + + + + + + + + + + + + + + + + + + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + {AC7AA7C5-4712-4992-B733-092D703E7AA9} + Tanshu.Accounts.DAOFactory + + + + + + + + + True + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj.user b/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj.user new file mode 100644 index 0000000..303b350 --- /dev/null +++ b/Tanshu.Accounts.BI/Tanshu.Accounts.BI.csproj.user @@ -0,0 +1,17 @@ + + + ProjectFiles + + + + + + RunFiles + + + False + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.BI/UserBI.cs b/Tanshu.Accounts.BI/UserBI.cs new file mode 100644 index 0000000..2957bc8 --- /dev/null +++ b/Tanshu.Accounts.BI/UserBI.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using Tanshu.Accounts.Contracts; +using System.Data.SqlClient; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + + +namespace Tanshu.Accounts.BI +{ + public class UserBI : IUserBI + { + public UserBO GetUser(Guid userID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.GetUser(userID); + } + } + } + public bool ChangePassword(UserBO userData, string newPassword) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.ChangePassword(userData, newPassword); + } + } + } + public List GetUsers() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.GetUsers(); + } + } + } + public List GetFilteredUsers(Dictionary filter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.GetFilteredUsers(filter); + } + } + } + public bool UserExists(string userName) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.UserExists(userName); + } + } + } + public bool Insert(UserBO user) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.Insert(user); + } + } + } + + public bool Update(UserBO user) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.Update(user); + } + } + } + + public bool Delete(Guid userID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IUserDAO dao = factory.GetUserDAO(connection)) + { + return dao.Delete(userID); + } + } + + } + } +} diff --git a/Tanshu.Accounts.BI/WaiterBI.cs b/Tanshu.Accounts.BI/WaiterBI.cs new file mode 100644 index 0000000..e9194ca --- /dev/null +++ b/Tanshu.Accounts.BI/WaiterBI.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using System.Data.SqlClient; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.BI +{ + public class WaiterBI : IWaiterBI + { + public bool Insert(WaiterBO waiter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.Insert(waiter); + } + } + } + public bool Update(WaiterBO waiter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.Update(waiter); + } + } + } + public bool Delete(Guid waiterID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.Delete(waiterID); + } + } + } + + public WaiterBO GetWaiter(Guid waiterID) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.GetWaiter(waiterID); + } + } + } + public WaiterBO GetWaiter(int code) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.GetWaiter(code); + } + } + } + public List GetWaiters() + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.GetWaiters(); + } + } + } + public List GetFilteredWaiters(Dictionary filter) + { + GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType); + using (IConnectionDAO connection = factory.Connection) + { + using (IWaiterDAO dao = factory.GetWaiterDAO(connection)) + { + + return dao.GetFilteredWaiters(filter); + } + } + } + } +} diff --git a/Tanshu.Accounts.Contracts/Communication/Delegates.cs b/Tanshu.Accounts.Contracts/Communication/Delegates.cs new file mode 100644 index 0000000..165f23f --- /dev/null +++ b/Tanshu.Accounts.Contracts/Communication/Delegates.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Tanshu.Accounts.Contracts +{ + public delegate void ShowProgessDelegate(decimal mininum, decimal maximum, decimal current, string message); + //public delegate UserBO IsInRole(bool authenticated, decimal maximum, decimal current, string message); +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/AdvanceDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/AdvanceDAO.cs new file mode 100644 index 0000000..ee70851 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/AdvanceDAO.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IAdvanceDAO :IDisposable + { + void Insert(AdvanceBO advance); + List GetAdvances(DateTime fromDate, DateTime toDate, bool all); + void Adjust(Guid advanceID, Guid userID); + + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/CheckoutDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/CheckoutDAO.cs new file mode 100644 index 0000000..32f3c68 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/CheckoutDAO.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ICheckoutDAO :IDisposable + { + decimal GetPending(ref string info); + decimal GetCreditCard(ref string info); + decimal GetVoids(ref string info); + decimal GetOpenings(); + decimal GetReceipts(); + decimal GetPayments(); + decimal GetAdditionalVoids(); + decimal GetRetainedOvernight(); + decimal GetAdvancesReceived(); + decimal GetAdvancesAdjusted(); + string GetPaymentString(); + string GetActiveCashiers(); + decimal GetNetSales(); + decimal GetDiscountsBills(ref string info); + + decimal GetOldPending(); + decimal GetOldReceipts(); + decimal GetOldVoided(); + + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/CustomerDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/CustomerDAO.cs new file mode 100644 index 0000000..a0cd817 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/CustomerDAO.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ICustomerDAO :IDisposable + { + void Insert(CustomerBO customer); + void Update(CustomerBO customer); + void Delete(Guid customerID); + + CustomerBO GetCustomer(Guid customerID); + List GetFilteredCustomers(Dictionary filter); + List GetCustomerLedgers(); + List GetCustomers(); + List GetCustomers(Guid customerID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/InventoryDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/InventoryDAO.cs new file mode 100644 index 0000000..e4333ce --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/InventoryDAO.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IInventoryDAO : IDisposable + { + bool Insert(InventoryBO inventory); + bool Update(InventoryBO inventory); + bool Delete(Guid voucherID); + bool Delete(Guid voucherID, Guid productID); + + List GetInventories(Guid voucherID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/LedgerDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/LedgerDAO.cs new file mode 100644 index 0000000..acc99c2 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/LedgerDAO.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ILedgerDAO : IDisposable + { + bool Insert(LedgerBO ledger); + LedgerBO GetLedger(Guid ledgerID); + LedgerBO GetLedger(string name); + List GetLedgers(char type); + bool Delete(Guid ledgerID); + bool Update(LedgerBO ledger); + List GetLedgers(); + + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/ManagementDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/ManagementDAO.cs new file mode 100644 index 0000000..d2bfdc1 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/ManagementDAO.cs @@ -0,0 +1,19 @@ +using System; +using Tanshu.Accounts.Contracts; +using System.Collections.Generic; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IManagementDAO : IDisposable + { + decimal GetBalance(decimal? tax); + List GetUpdateBillList(decimal tax, bool voided, bool paid, bool creditCard); + decimal Update(Guid voucherID, decimal tax); + + List GetPaidBills(); + + void Reorder(ShowProgessDelegate showProgressDelegate); + + bool MergeData(string sourceDB, string targetDB); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/MembershipDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/MembershipDAO.cs new file mode 100644 index 0000000..05abffd --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/MembershipDAO.cs @@ -0,0 +1,26 @@ +using System; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IMembershipDAO : IDisposable + { + bool ValidateUser(string name, string password); + + bool IsUserInRole(string username, string roleName); + + bool IsUserInRole(Guid userID, string roleName); + + string[] GetRolesForUser(string username); + + UserBO GetUserFromName(string name); + + string[] GetAllRoles(); + + void AddUsersToRoles(string[] usernames, string[] roleNames); + + void RemoveUsersFromRoles(string[] usernames, string[] roleNames); + + bool RoleExists(string roleID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/PaymentDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/PaymentDAO.cs new file mode 100644 index 0000000..bcfb22c --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/PaymentDAO.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IPaymentDAO : IDisposable + { + void Insert(PaymentBO payment); + List GetPayments(Guid? userID, DateTime fromDate, DateTime toDate); + void Delete(Guid paymentID); + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.Contracts/DAOFactory/ProductDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/ProductDAO.cs new file mode 100644 index 0000000..273764d --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/ProductDAO.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IProductDAO : IDisposable + { + bool Insert(ProductBO product); + ProductBO GetProduct(Guid productID); + bool Delete(Guid productID); + bool Update(ProductBO product); + ProductBO GetProduct(string nameAndUnits); + decimal GetProductStock(DateTime date, Guid productID, Guid? voucherID); + + List GetProducts(); + + void UpdateShortName(); + + List GetFilteredProducts(Dictionary filter); + + List GetProductTypes(); + + List GetProducts(string name, int skip, int count); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherDAO.cs new file mode 100644 index 0000000..ba6ab90 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherDAO.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ISaleVoucherDAO : IDisposable + { + bool Insert(SaleVoucherBO saleVoucher); + bool Update(SaleVoucherBO saleVoucher); + void SetAlarm(Guid voucherID, DateTime? alarmTime); + void VoidBill(Guid voucherID, string reason); + SaleVoucherBO GetVoucherSale(Guid voucherID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherMixDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherMixDAO.cs new file mode 100644 index 0000000..fdada20 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/SaleVoucherMixDAO.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ISaleVoucherMixDAO : IDisposable + { + SalesBillItemBO GetDefaultSaleBillItem(Guid productID); + decimal GetProductDiscountLimit(Guid productID); + bool IsBillPrinted(Guid voucherID); + + List GetPendingBills(PendingType list); + Nullable GetPendingVoucherID(string tableID); + List SaleInventory(Dictionary.ValueCollection list, Guid? voucherID); + void GetComplexBillInformation(Guid voucherID, Guid complexProductID, ref decimal rate, ref decimal quantity, ref string name); + + void DeclareBillsPaid(Guid userID, List billList, bool creditCard); + + void ToggleImportant(Guid voucherID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/SalesAnalysisDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/SalesAnalysisDAO.cs new file mode 100644 index 0000000..ca2e72b --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/SalesAnalysisDAO.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ISalesAnalysisDAO : IDisposable + { + List GetSalesTaxReturn(DateTime startDate, DateTime finishDate, ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax); + void GetAdditionalInfo(ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax, DateTime startDate, DateTime finishDate); + List GetSaleDetail(DateTime startDate, DateTime finishDate, Guid costCenterID); + List GetSale(DateTime startDate, DateTime finishDate); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/TaxDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/TaxDAO.cs new file mode 100644 index 0000000..64317c9 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/TaxDAO.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface ITaxDAO : IDisposable + { + List GetTaxes(); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/UserDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/UserDAO.cs new file mode 100644 index 0000000..2dbaf07 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/UserDAO.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IUserDAO : IDisposable + { + UserBO GetUser(Guid userID); + List GetUsers(); + List GetFilteredUsers(Dictionary filter); + bool UserExists(string userName); + bool Insert(UserBO user); + + bool ChangePassword(UserBO userData, string newPassword); + + bool Update(UserBO user); + + bool Delete(Guid userID); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/VoucherDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/VoucherDAO.cs new file mode 100644 index 0000000..344a944 --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/VoucherDAO.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IVoucherDAO : IDisposable + { + bool Insert(VoucherBO voucher); + VoucherBO GetVoucher(Guid voucherID); + bool Delete(Guid voucherID); + bool Update(VoucherBO voucher); + } +} diff --git a/Tanshu.Accounts.Contracts/DAOFactory/WaiterDAO.cs b/Tanshu.Accounts.Contracts/DAOFactory/WaiterDAO.cs new file mode 100644 index 0000000..01b459b --- /dev/null +++ b/Tanshu.Accounts.Contracts/DAOFactory/WaiterDAO.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.DAOFactory +{ + public interface IWaiterDAO : IDisposable + { + bool Insert(WaiterBO waiter); + bool Update(WaiterBO waiter); + bool Delete(Guid waiterID); + + WaiterBO GetWaiter(Guid waiterID); + WaiterBO GetWaiter(int code); + + List GetWaiters(); + List GetFilteredWaiters(Dictionary filter); + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/AdvanceBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/AdvanceBO.cs new file mode 100644 index 0000000..0c4b4de --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/AdvanceBO.cs @@ -0,0 +1,24 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class AdvanceBO + { + [DataMember] + public Guid AdvanceID { get; set; } + [DataMember] + public decimal Amount { get; set; } + [DataMember] + public string Narration { get; set; } + [DataMember] + public Guid CashierIn { get; set; } + [DataMember] + public DateTime DateIn { get; set; } + [DataMember] + public Guid? CashierOut { get; set; } + [DataMember] + public DateTime? DateOut { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/AdvanceDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/AdvanceDisplayBO.cs new file mode 100644 index 0000000..b3ae081 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/AdvanceDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class AdvanceDisplayBO : AdvanceBO + { + [DataMember] + public string Cashier { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/BillItemKey.cs b/Tanshu.Accounts.Contracts/Data Contracts/BillItemKey.cs new file mode 100644 index 0000000..19d39f1 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/BillItemKey.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + public class BillItemKey + { + public BillItemKey(Guid productID, bool isNew) + { + ProductID = productID; + IsNew = isNew; + } + + public Guid ProductID + { + get; + private set; + } + public bool IsNew + { + get; + private set; + } + public override int GetHashCode() + { + return string.Format("{0} - {1}", ProductID, IsNew).GetHashCode(); + } + public override bool Equals(object obj) + { + if (obj is BillItemKey) + return (this == (BillItemKey)obj); + else + return false; + } + public override string ToString() + { + return string.Format("{0} - {1}", ProductID, IsNew); + } + + public static bool operator ==(BillItemKey a, BillItemKey b) + { + if (!(a is BillItemKey)) + return false; + if (!(b is BillItemKey)) + return false; + + return a.ProductID == b.ProductID && a.IsNew == b.IsNew; + } + public static bool operator !=(BillItemKey a, BillItemKey b) + { + return !(a == b); + } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ComplexProductBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ComplexProductBO.cs new file mode 100644 index 0000000..7f70ad2 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/ComplexProductBO.cs @@ -0,0 +1,28 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class ComplexProductBO + { + [DataMember] + public Guid ComplexProductID { get; set; } + [DataMember] + public Guid ProductID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public string Units { get; set; } + [DataMember] + public decimal SalePrice { get; set; } + [DataMember] + public Guid SaleTaxID { get; set; } + [DataMember] + public decimal Quantity { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/CostCenterBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/CostCenterBO.cs new file mode 100644 index 0000000..38d3562 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/CostCenterBO.cs @@ -0,0 +1,18 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class CostCenterBO + { + [DataMember] + public Guid CostCenterID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/CustomerBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/CustomerBO.cs new file mode 100644 index 0000000..da5bc1b --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/CustomerBO.cs @@ -0,0 +1,29 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class CustomerBO + { + [DataMember] + public Guid CustomerID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public string Address { get; set; } + [DataMember] + public bool Important { get; set; } + [DataMember] + public string Phone { get; set; } + [DataMember] + public string Remarks { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs new file mode 100644 index 0000000..f34a2f4 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs @@ -0,0 +1,90 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class InventoryBO + { + [DataMember] + public Guid InventoryID { get; set; } + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public Guid ProductID { get; set; } + [DataMember] + public Guid? ComplexProductID { get; set; } + private decimal quantity; + [DataMember] + public decimal Quantity + { + get { return quantity; } + set + { + quantity = value; + if (amount != null) + CalculateAmount(); + } + } + private decimal rate; + [DataMember] + public decimal Rate + { + get { return rate; } + set + { + rate = value; + if (amount != null) + CalculateAmount(); + } + } + decimal tax; + [DataMember] + public decimal Tax + { + get { return tax; } + set + { + tax = value; if (amount != null) + CalculateAmount(); + } + } + decimal discount; + + [DataMember] + public decimal Discount + { + get { return discount; } + set + { + discount = value; if (amount != null) + CalculateAmount(); + } + } + decimal? amount; + + [DataMember] + public decimal Amount + { + get + { + if (!amount.HasValue) + CalculateAmount(); + return amount.Value; + } + } + private void CalculateAmount() + { + amount = quantity * rate * (1 + tax) * (1 - discount); + } + [DataMember] + public bool IsRateFinal { get; set; } + [DataMember] + public bool RateFinal + { + get { return IsRateFinal; } + } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/InventoryDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/InventoryDisplayBO.cs new file mode 100644 index 0000000..8ca836c --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/InventoryDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class InventoryDisplayBO : InventoryBO + { + [DataMember] + public string ProductName { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/JournalBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/JournalBO.cs new file mode 100644 index 0000000..ddbd45a --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/JournalBO.cs @@ -0,0 +1,41 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class JournalBO + { + [DataMember] + public Guid JournalID { get; set; } + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public Guid CostCenterID { get; set; } + [DataMember] + public decimal Amount { get; set; } + private int debit; + [DataMember] + public int Debit + { + get { return debit; } + set + { + if ((value == 1) || (value == -1)) + debit = value; + else + throw new ArgumentException("Debit can only be -1 or 1"); + } + } + [DataMember] + public decimal SignedAmount + { + get { return Amount * Debit; } + } + [DataMember] + public byte[] timestamp { get; set; } + + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/JournalDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/JournalDisplayBO.cs new file mode 100644 index 0000000..e0225e4 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/JournalDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class JournalDisplayBO : JournalBO + { + [DataMember] + public string LedgerName { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/LedgerBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/LedgerBO.cs new file mode 100644 index 0000000..3e5faf2 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/LedgerBO.cs @@ -0,0 +1,26 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class LedgerBO + { + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public virtual char Type { get; set; } + [DataMember] + public Guid ParentLedgerID { get; set; } + [DataMember] + public Guid CostCenterID { get; set; } + [DataMember] + public bool IsActive { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/LedgerDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/LedgerDisplayBO.cs new file mode 100644 index 0000000..a3c6c95 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/LedgerDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class LedgerDisplayBO : LedgerBO + { + [DataMember] + public string CostCenter { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/LedgerTypeBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/LedgerTypeBO.cs new file mode 100644 index 0000000..5cea3f1 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/LedgerTypeBO.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class LedgerTypeBO + { + [DataMember] + public char TypeID { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public int SortOrder { get; set; } + [DataMember] + public short Debit { get; set; } + [DataMember] + public byte Location { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/PaymentBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/PaymentBO.cs new file mode 100644 index 0000000..b9b45ac --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/PaymentBO.cs @@ -0,0 +1,23 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class PaymentBO + { + [DataMember] + public Guid PaymentID { get; set; } + [DataMember] + public DateTime Date { get; set; } + [DataMember] + public string Type { get; set; } + [DataMember] + public Guid CashierID { get; set; } + [DataMember] + public decimal Amount { get; set; } + [DataMember] + public string Narration { get; set; } + + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/PaymentDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/PaymentDisplayBO.cs new file mode 100644 index 0000000..f13ce59 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/PaymentDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class PaymentDisplayBO : PaymentBO + { + [DataMember] + public string Cashier { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetBO.cs new file mode 100644 index 0000000..6d49ef0 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetBO.cs @@ -0,0 +1,34 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class PaymentSheetBO + { + [DataMember] + public Guid SalaryPaymentID { get; set; } + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public decimal Opening { get; set; } + [DataMember] + public decimal Salary { get; set; } + [DataMember] + public decimal Total + { + get { return Opening + Salary; } + } + [DataMember] + public int Paid { get; set; } + [DataMember] + public decimal Closing + { + get { return (Opening + Salary) - Paid; } + } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetDisplayBO.cs new file mode 100644 index 0000000..4e6325f --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/PaymentSheetDisplayBO.cs @@ -0,0 +1,14 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class PaymentSheetDisplayBO : PaymentSheetBO + { + [DataMember] + public string Name { get; set; } + [DataMember] + public string Department { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/PendingBillsBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/PendingBillsBO.cs new file mode 100644 index 0000000..3ec0073 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/PendingBillsBO.cs @@ -0,0 +1,51 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public enum PendingType + { + [EnumMember] + Today = 0, + [EnumMember] + Week = 1, + [EnumMember] + All = 2, + [EnumMember] + Important = 4, + [EnumMember] + Alarms = 8 + } + + [DataContract] + public class PendingBillsBO + { + [DataMember] + public Guid voucherID { get; set; } + [DataMember] + public string BillNo { get; set; } + [DataMember] + public string Kot { get; set; } + [DataMember] + public string TableID { get; set; } + [DataMember] + public decimal Amount { get; set; } + [DataMember] + public bool Important { get; set; } + [DataMember] + public bool Alarm { get; set; } + [DataMember] + public DateTime BookingTime { get; set; } + [DataMember] + public DateTime LastEdited { get; set; } + [DataMember] + public string Waiter { get; set; } + [DataMember] + public string Cashier { get; set; } + [DataMember] + public bool Printed { get; set; } + [DataMember] + public Nullable AlarmTime { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ProductBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ProductBO.cs new file mode 100644 index 0000000..da4163d --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/ProductBO.cs @@ -0,0 +1,42 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class ProductBO + { + [DataMember] + public Guid ProductID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public string Units { get; set; } + [DataMember] + public Guid ProductTypeID { get; set; } + [DataMember] + public Guid SaleLedgerID { get; set; } + [DataMember] + public Guid SaleTaxID { get; set; } + [DataMember] + public decimal SalePrice { get; set; } + [DataMember] + public Guid PurchaseLedgerID { get; set; } + [DataMember] + public Guid PurchaseTaxID { get; set; } + [DataMember] + public decimal PurchasePrice { get; set; } + [DataMember] + public bool Discontinued { get; set; } + [DataMember] + public decimal MinimumLevel { get; set; } + [DataMember] + public decimal MaximumLevel { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + [DataMember] + public int SortOrder { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplayBO.cs new file mode 100644 index 0000000..330ae33 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplayBO.cs @@ -0,0 +1,14 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class ProductDisplayBO : ProductBO + { + [DataMember] + public decimal Price { get; set; } + [DataMember] + public string Type { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplaySmallBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplaySmallBO.cs new file mode 100644 index 0000000..21fca42 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/ProductDisplaySmallBO.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class ProductDisplaySmallBO + { + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public decimal Price { get; set; } + [DataMember] + public string Category { get; set; } + [DataMember] + public Guid ProductID { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ProductTypeBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ProductTypeBO.cs new file mode 100644 index 0000000..2a9252e --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/ProductTypeBO.cs @@ -0,0 +1,22 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class ProductTypeBO + { + [DataMember] + public Guid ProductTypeID { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public decimal DiscountLimit { get; set; } + [DataMember] + public bool IsForSale { get; set; } + [DataMember] + public bool IsForPurchae { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/RequirementBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/RequirementBO.cs new file mode 100644 index 0000000..a58f6ab --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/RequirementBO.cs @@ -0,0 +1,45 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class RequirementBO + { + [DataMember] + public Guid RequirementID { get; set; } + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public DateTime Date { get; set; } + [DataMember] + public Guid ProductID { get; set; } + [DataMember] + public decimal Requirement { get; set; } + [DataMember] + public string Remarks { get; set; } + [DataMember] + public byte Status { get; set; } + // Status 0 - Pending, 1 - Ordered, 2 - Cancelled, 3 - Fulfilled + [DataMember] + public DateTime StatusDate { get; set; } + [DataMember] + public decimal Stock { get; set; } + [DataMember] + public decimal Price { get; set; } + [DataMember] + public decimal Ordered { get; set; } + [DataMember] + public decimal OrderRate { get; set; } + [DataMember] + public decimal OrderAmount + { + get + { + return Ordered * OrderRate; + } + } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/RequirementDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/RequirementDisplayBO.cs new file mode 100644 index 0000000..6becbf1 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/RequirementDisplayBO.cs @@ -0,0 +1,33 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class RequirementDisplayBO : RequirementBO + { + [DataMember] + public string Product { get; set; } + [DataMember] + public string Ledger { get; set; } + [DataMember] + public string StatusDisplay + { + get + { + if (base.Status == 0) + return "Pending"; + else if (base.Status == 1) + return "Ordered"; + else if (base.Status == 2) + return "Cancelled"; + else if (base.Status == 3) + return "Fulfilled"; + else + throw new ArgumentException("Status message is invalid"); + } + } + [DataMember] + public decimal OrderTotal { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetBO.cs new file mode 100644 index 0000000..2abab05 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetBO.cs @@ -0,0 +1,52 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class SalarySheetBO + { + [DataMember] + public Guid SalarySheetID { get; set; } + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public Guid LedgerID { get; set; } + [DataMember] + public int Salary { get; set; } + [DataMember] + public decimal WorkingDays { get; set; } + [DataMember] + public decimal Present { get; set; } + [DataMember] + public decimal Offs { get; set; } + [DataMember] + public decimal Overtime { get; set; } + [DataMember] + public int Deductions { get; set; } + [DataMember] + public int TotalSalary + { + get + { + decimal amount = 0; + + // Salary + amount = (Present + Offs + Overtime) * Salary / WorkingDays; + + // Less Deductions + amount -= Deductions; + + // Roundoff + amount = Math.Round(amount); + + return Convert.ToInt32(amount); + } + + } + [DataMember] + public string Remarks { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetDisplayBO.cs new file mode 100644 index 0000000..d1bef2e --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/SalarySheetDisplayBO.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class SalarySheetDisplayBO : SalarySheetBO + { + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public string CostCenter { get; set; } + [DataMember] + public int CurrentSalary { get; set; } + [DataMember] + public bool IsComputed { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs new file mode 100644 index 0000000..e5492ec --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs @@ -0,0 +1,36 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class SaleVoucherBO : VoucherBO + { + [DataMember] + public string BillID { get; set; } + [DataMember] + public string TableID { get; set; } + [DataMember] + public Guid WaiterID { get; set; } + [DataMember] + public Guid CustomerID { get; set; } + [DataMember] + public bool Paid { get; set; } + [DataMember] + public bool Void { get; set; } + [DataMember] + public string VoidReason { get; set; } + [DataMember] + public bool Printed { get; set; } + [DataMember] + public DateTime? Alarm { get; set; } + [DataMember] + public string KotID { get; set; } + [DataMember] + public bool CreditCard { get; set; } + [DataMember] + public bool IsImportant { get; set; } + [DataMember] + public byte[] SaleTimestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SalesAnalysisBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SalesAnalysisBO.cs new file mode 100644 index 0000000..2951930 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/SalesAnalysisBO.cs @@ -0,0 +1,33 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class SalesAnalysisBO + { + [DataMember] + public Guid TypeID { get; set; } + [DataMember] + public string Section { get; set; } + [DataMember] + public decimal Quantity { get; set; } + [DataMember] + public decimal Gross { get; set; } + [DataMember] + public decimal Net { get; set; } + } + + [DataContract] + public class SalesAnalysisDetailBO + { + [DataMember] + public string Section { get; set; } + [DataMember] + public string Product { get; set; } + [DataMember] + public decimal Quantity { get; set; } + [DataMember] + public decimal Amount { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SalesBillItemBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SalesBillItemBO.cs new file mode 100644 index 0000000..89d591e --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/SalesBillItemBO.cs @@ -0,0 +1,130 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class SalesBillItemBO + { + [DataMember] + public Guid productID; + [DataMember] + public string Name { get; set; } + + private decimal price; + [DataMember] + public decimal Price + { + get { return price; } + set + { + if (value <= 0) + throw new ArgumentException("Price has to be non-negative greater than zero."); + else + price = value; + } + } + + private decimal quantity = 1; + [DataMember] + public decimal Quantity + { + get { return quantity; } + set + { + if (value <= 0) + throw new ArgumentException("Quantity has to be non-negative greater than zero."); + quantity = value; + + } + } + + private decimal discount = 0; + [DataMember] + public decimal Discount + { + get { return discount; } + set + { + if (value < 0) + throw new ArgumentException("Discount has to be non-negative greater than or equal to zero."); + else if (value > 1) + throw new ArgumentException("Discount has to be less than one."); + else + discount = value; + } + } + + [DataMember] + public decimal Tax { get; set; } + + public decimal TaxAmount + { + get + { + return quantity * price * Tax * (1 - discount); + } + } + + public decimal DiscountAmount + { + get + { + return quantity * price * discount; + } + } + + public decimal GrossAmount + { + get + { + return quantity * price * (1 - discount); + } + } + + private decimal printed = 0; + [DataMember] + public decimal Printed + { + get { return printed; } + set + { + if (value < 0) + throw new ArgumentException("Printed has to be non-negative greater than or equal to zero."); + else + printed = value; + } + } + [DataMember] + public string location; + + public decimal Value + { + get + { + return price * quantity * (1 - discount) * (1 + Tax); + } + } + public decimal Additional + { + get + { + return quantity - printed; + } + } + + [DataMember] + public bool isNew = true; + + public string Display + { + get + { + string output = string.Format("{0} @ Rs. {1:#.##}", Name, price); + if (discount != 0) + output += string.Format(" - {0:#.##%}", discount); + return output; + } + } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/TaxBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/TaxBO.cs new file mode 100644 index 0000000..52b5fd6 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/TaxBO.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class TaxBO + { + [DataMember] + public Guid TaxID { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public decimal Rate { get; set; } + [DataMember] + public char Type { get; set; } + [DataMember] + private byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/UserBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/UserBO.cs new file mode 100644 index 0000000..42c3c95 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/UserBO.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class UserBO + { + [DataMember] + public Guid UserID { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public string Password { get; set; } + [DataMember] + public bool LockedOut { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/VerificationBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/VerificationBO.cs new file mode 100644 index 0000000..68083c8 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/VerificationBO.cs @@ -0,0 +1,27 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class VerificationBO + { + [DataMember] + public Guid VerificationID { get; set; } + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public Guid ProductID { get; set; } + [DataMember] + public decimal ActualQuantity { get; set; } + [DataMember] + public decimal ComputedQuantity { get; set; } + [DataMember] + public decimal LostQuantity + { + get { return ComputedQuantity - ActualQuantity; } + } + [DataMember] + public byte[] Timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/VerificationDisplayBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/VerificationDisplayBO.cs new file mode 100644 index 0000000..bb46713 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/VerificationDisplayBO.cs @@ -0,0 +1,12 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class VerificationDisplayBO : VerificationBO + { + [DataMember] + public string ProductName { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/VoucherBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/VoucherBO.cs new file mode 100644 index 0000000..415f2f4 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/VoucherBO.cs @@ -0,0 +1,30 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class VoucherBO + { + [DataMember] + public Guid VoucherID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Ref { get; set; } + [DataMember] + public DateTime? Date { get; set; } + [DataMember] + public string Narration { get; set; } + [DataMember] + public Guid UserID { get; set; } + [DataMember] + public DateTime CreationDate { get; set; } + [DataMember] + public DateTime LastEditDate { get; set; } + [DataMember] + public char Type { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Data Contracts/WaiterBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/WaiterBO.cs new file mode 100644 index 0000000..1eb2c81 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Data Contracts/WaiterBO.cs @@ -0,0 +1,18 @@ +using System; +using System.Runtime.Serialization; + +namespace Tanshu.Accounts.Contracts +{ + [DataContract] + public class WaiterBO + { + [DataMember] + public Guid WaiterID { get; set; } + [DataMember] + public int Code { get; set; } + [DataMember] + public string Name { get; set; } + [DataMember] + public byte[] timestamp { get; set; } + } +} diff --git a/Tanshu.Accounts.Contracts/Properties/AssemblyInfo.cs b/Tanshu.Accounts.Contracts/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3eec3aa --- /dev/null +++ b/Tanshu.Accounts.Contracts/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.Accounts.Contracts")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.Accounts.Contracts")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2eff194b-2299-481d-95dd-08e40ebce1b9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.Contracts/Service Contracts/AdvanceBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/AdvanceBI.cs new file mode 100644 index 0000000..45fb870 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/AdvanceBI.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IAdvanceBI + { + [OperationContract] + void Insert(AdvanceBO advance); + [OperationContract] + List GetAdvances(DateTime fromDate, DateTime toDate, bool all); + [OperationContract] + void Adjust(Guid advanceID, Guid userID); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/CheckoutBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/CheckoutBI.cs new file mode 100644 index 0000000..b618016 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/CheckoutBI.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Data.SqlClient; +using System.ServiceModel; +using System.Runtime.Serialization; + + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface ICheckoutBI + { + #region Properties + [DataMember] + decimal Opening { get; } + [DataMember] + decimal Receipts { get; } + [DataMember] + decimal AdvanceReceipts { get; } + [DataMember] + decimal CCReceipts { get; } + [DataMember] + decimal AdvanceAdjusted { get; } + [DataMember] + decimal CashPayments { get; } + [DataMember] + decimal AdditionalVoids { get; } + [DataMember] + decimal VoidsInSystem { get; } + [DataMember] + decimal PendingBills { get; } + [DataMember] + decimal NetSales { get; } + [DataMember] + decimal ClosingBalance { get; } + [DataMember] + decimal RetainedOvernight { get; } + [DataMember] + decimal CashDeposited { get; } // + [DataMember] + decimal Excess { get; } // + [DataMember] + string Status { get; } // + [DataMember] + string Cashiers { get; } // + [DataMember] + Guid CashierID { get; } // + [DataMember] + string Cashier { get; } // + [DataMember] + DateTime StartDate { get; } // + [DataMember] + DateTime FinishDate { get; } // + + [DataMember] + string PendingString { get; } + [DataMember] + string CCString { get; } + [DataMember] + string VoidsString { get; } + [DataMember] + string DiscountString { get; } + [DataMember] + string Manager { get; } + #endregion + + [OperationContract] + void Init(Guid cashier, DateTime startDate, DateTime finishDate); + [OperationContract] + void Calculate(decimal cashDeposited, decimal retainedOvernight); + } + +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/CustomerBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/CustomerBI.cs new file mode 100644 index 0000000..f3f32da --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/CustomerBI.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.ServiceModel; +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface ICustomerBI + { + [OperationContract] + List GetCustomerLedgers(); + [OperationContract] + CustomerBO GetCustomer(Guid customerID); + [OperationContract] + List GetFilteredCustomers(Dictionary filter); + [OperationContract] + List GetCustomers(); + [OperationContract] + List GetSingleCustomers(Guid customerID); + [OperationContract] + bool Update(CustomerBO customer); + [OperationContract] + bool Delete(Guid customerID); + [OperationContract] + bool Insert(CustomerBO customer); + } + +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/LedgerBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/LedgerBI.cs new file mode 100644 index 0000000..c06df99 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/LedgerBI.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; + +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface ILedgerBI + { + [OperationContract] + LedgerBO GetLedger(Guid ledgerID); + [OperationContract] + LedgerBO GetLedgerByName(string name); + [OperationContract] + bool Insert(LedgerBO ledger); + [OperationContract] + bool Update(LedgerBO ledger); + [OperationContract] + List GetLedgers(); + [OperationContract] + List GetLedgersOfType(char type); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/MembershipBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/MembershipBI.cs new file mode 100644 index 0000000..7c9761b --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/MembershipBI.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.Data.SqlClient; +using System.ServiceModel; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IMembershipBI + { + [OperationContract] + bool ValidateUser(string name, string password); + [OperationContract] + void AddUsersToRoles(string[] usernames, string[] roleNames); + [OperationContract] + string[] GetAllRoles(); + [OperationContract] + string[] GetRolesForUser(string username); + [OperationContract] + bool IsUserInRole(string username, string roleName); + [OperationContract] + void RemoveUsersFromRoles(string[] usernames, string[] roleNames); + [OperationContract] + UserBO GetUserFromName(string name); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/PaymentBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/PaymentBI.cs new file mode 100644 index 0000000..ea9a9cc --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/PaymentBI.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; + +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IPaymentBI + { + [OperationContract] + void Insert(PaymentBO payment); + [OperationContract] + List GetPayments(Guid? userID, DateTime fromDate, DateTime toDate); + [OperationContract] + void Delete(Guid paymentID); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/ProductBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/ProductBI.cs new file mode 100644 index 0000000..a8e3cb2 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/ProductBI.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IProductBI + { + [OperationContract] + bool Insert(ProductBO product); + [OperationContract] + bool Update(ProductBO product); + [OperationContract] + bool Delete(Guid productID); + [OperationContract] + ProductBO GetProductFromName(string nameAndUnits); + [OperationContract] + ProductBO GetProduct(Guid productID); + [OperationContract] + decimal GetProductStock(DateTime date, Guid productID, Guid? voucherID); + [OperationContract] + List GetProducts(); + [OperationContract] + List GetFilteredProducts(Dictionary filter); + [OperationContract] + List GetProductTypes(); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/SaleVoucherBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/SaleVoucherBI.cs new file mode 100644 index 0000000..c3a5658 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/SaleVoucherBI.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.ServiceModel; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface ISaleVoucherBI + { + [OperationContract] + SalesBillItemBO GetDefaultSaleBillItem(Guid productID); + [OperationContract] + decimal GetProductDiscountLimit(Guid productID); + [OperationContract] + bool IsBillPrinted(Guid voucherID); + [OperationContract] + bool Insert(SaleVoucherBO saleVoucher, List inventory); + [OperationContract] + bool Update(SaleVoucherBO saleVoucher, List inventory); + [OperationContract] + bool GetSaleVoucher(Guid voucherID, ref SaleVoucherBO voucherSale, ref List iList); + + [OperationContract] + List GetPendingBills(PendingType list); + [OperationContract] + Guid? GetPendingVoucherID(string tableID); + [OperationContract] + List SaleInventory(Dictionary.ValueCollection list, Guid? voucherID); + [OperationContract] + void GetComplexBillInformation(Guid voucherID, Guid complexProductID, ref decimal rate, ref decimal quantity, ref string name); + [OperationContract] + void SetAlarm(Guid voucherID, DateTime? alarmTime); + [OperationContract] + void VoidBill(Guid voucherID, string reason); + [OperationContract] + void DeclareBillsPaid(Guid userID, List billList, bool creditCard); + [OperationContract] + void ToggleImportant(Guid voucherID); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/SalesAnalysisBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/SalesAnalysisBI.cs new file mode 100644 index 0000000..44120ab --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/SalesAnalysisBI.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +//using System.Linq; +using System.Text; +using System.Data.SqlClient; +using System.ServiceModel; + + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface ISalesAnalysisBI + { + [OperationContract] + List GetSaleDetail(DateTime startDate, DateTime finishDate, Guid costCenterID); + [OperationContract] + List GetSale(DateTime startDate, DateTime finishDate); + [OperationContract] + void GetAdditionalInfo(ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax, DateTime startDate, DateTime finishDate); + [OperationContract] + List GetSalesTaxReturn(DateTime startDate, DateTime finishDate, ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/UserBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/UserBI.cs new file mode 100644 index 0000000..25e78bf --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/UserBI.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IUserBI + { + [OperationContract] + UserBO GetUser(Guid userID); + [OperationContract] + bool ChangePassword(UserBO userData, string newPassword); + [OperationContract] + List GetUsers(); + [OperationContract] + bool UserExists(string userName); + [OperationContract] + bool Insert(UserBO user); + [OperationContract] + bool Update(UserBO user); + [OperationContract] + bool Delete(Guid userID); + } +} diff --git a/Tanshu.Accounts.Contracts/Service Contracts/WaiterBI.cs b/Tanshu.Accounts.Contracts/Service Contracts/WaiterBI.cs new file mode 100644 index 0000000..7a11979 --- /dev/null +++ b/Tanshu.Accounts.Contracts/Service Contracts/WaiterBI.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ServiceModel; +using System.Data.SqlClient; + +namespace Tanshu.Accounts.Contracts +{ + [ServiceContract] + public interface IWaiterBI + { + [OperationContract] + bool Insert(WaiterBO waiter); + [OperationContract] + bool Update(WaiterBO waiter); + [OperationContract] + WaiterBO GetWaiter(Guid waiterID); + [OperationContract] + bool Delete(Guid waiterID); + [OperationContract] + List GetWaiters(); + } +} diff --git a/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj b/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj new file mode 100644 index 0000000..557690e --- /dev/null +++ b/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Library + Properties + Tanshu.Accounts.Contracts + Tanshu.Accounts.Contracts + v3.5 + 512 + + + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + 3.5 + + + 3.0 + + + 3.0 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj.user b/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj.user new file mode 100644 index 0000000..a1d742b --- /dev/null +++ b/Tanshu.Accounts.Contracts/Tanshu.Accounts.Contracts.csproj.user @@ -0,0 +1,5 @@ + + + ProjectFiles + + \ No newline at end of file diff --git a/Tanshu.Accounts.DAOFactory/DAOFactory.cs b/Tanshu.Accounts.DAOFactory/DAOFactory.cs new file mode 100644 index 0000000..e18c37c --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/DAOFactory.cs @@ -0,0 +1,54 @@ +using System; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.DAOFactory +{ + // List of DAO types supported by the factory + public enum DAOFactoryTypes + { + SqlServer = 0, + PostgreSQL = 1 + } + // Abstract class DAO Factory + public abstract class GetFactory + { + + // There will be a method for each DAO that can be + // created. The concrete factories will have to + // implement these methods. + public abstract IAdvanceDAO GetAdvanceDAO(IConnectionDAO connection); + public abstract ICheckoutDAO GetCheckoutDAO(DateTime startDate, DateTime finishDate, Guid userID, IConnectionDAO connection); + public abstract ICustomerDAO GetCustomerDAO(IConnectionDAO connection); + public abstract IInventoryDAO GetInventoryDAO(IConnectionDAO connection); + public abstract ILedgerDAO GetLedgerDAO(IConnectionDAO connection); + public abstract IManagementDAO GetManagementDAO(DateTime startDate, DateTime finishDate, IConnectionDAO connection); + public abstract IMembershipDAO GetMembershipDAO(IConnectionDAO connection); + public abstract IPaymentDAO GetPaymentDAO(IConnectionDAO connection); + public abstract IProductDAO GetProductDAO(IConnectionDAO connection); + public abstract ISalesAnalysisDAO GetSalesAnalysisDAO(IConnectionDAO connection); + public abstract ISaleVoucherDAO GetSaleVoucherDAO(IConnectionDAO connection); + public abstract ISaleVoucherMixDAO GetSaleVoucherMixDAO(IConnectionDAO connection); + public abstract IUserDAO GetUserDAO(IConnectionDAO connection); + public abstract IVoucherDAO GetVoucherDAO(IConnectionDAO connection); + public abstract IWaiterDAO GetWaiterDAO(IConnectionDAO connection); + + + public abstract IConnectionDAO Connection { get; } + + public static GetFactory GetDAOFactory(DAOFactoryTypes type) + { + + switch (type) + { + //case DAOFactoryTypes.PostgreSQL: + // return new PostgreSQLDAOFactory(); + case DAOFactoryTypes.SqlServer: + return new SqlServerDAOFactory(); + //case DAOFactoryTypes.PostgreSQL: + // return new PostgresDAOFactory(); + default: + throw new ArgumentException(); + } + } + } +} diff --git a/Tanshu.Accounts.DAOFactory/GetFactoryTypes.cs b/Tanshu.Accounts.DAOFactory/GetFactoryTypes.cs new file mode 100644 index 0000000..f2da1c8 --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/GetFactoryTypes.cs @@ -0,0 +1,22 @@ +using System.Configuration; +using System; + +namespace Tanshu.Accounts.DAOFactory +{ + public static class Database + { + public static DAOFactoryTypes GetFactoryType + { + get + { + string type = ConfigurationManager.AppSettings["Factory"].ToLowerInvariant(); + if (DAOFactoryTypes.SqlServer.ToString().ToLowerInvariant() == type) + return DAOFactoryTypes.SqlServer; + else if (DAOFactoryTypes.PostgreSQL.ToString().ToLowerInvariant() == type) + return DAOFactoryTypes.PostgreSQL; + else + throw new ArgumentException(); + } + } + } +} diff --git a/Tanshu.Accounts.DAOFactory/PostgresDAOFactory.cs b/Tanshu.Accounts.DAOFactory/PostgresDAOFactory.cs new file mode 100644 index 0000000..fc2f7a2 --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/PostgresDAOFactory.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Tanshu.WebAccounts.PostgresDAO; +using Tanshu.Data.DAO; +using Tanshu.WebAccounts.PostgresDAO.Reports; + +namespace Tanshu.WebAccounts.DAOFactory +{ + public class PostgresDAOFactory : GetFactory + { + public override ICostCenterDAO GetCostCenterDAO(IConnectionDAO connection) + { + return new CostCenterDAO(connection); + } + + public override IEmployeeDAO GetEmployeeDAO(IConnectionDAO connection) + { + return new EmployeeDAO(connection); + } + + public override IInventoryDAO GetInventoryDAO(IConnectionDAO connection) + { + return new InventoryDAO(connection); + } + + public override IInventoryDisplayDAO GetInventoryDisplayDAO(IConnectionDAO connection) + { + return new InventoryDisplayDAO(connection); + } + + public override IIssueDAO GetIssueDAO(IConnectionDAO connection) + { + return new IssueDAO(connection); + } + + public override IJournalDAO GetJournalDAO(IConnectionDAO connection) + { + return new JournalDAO(connection); + } + + public override ILedgerDAO GetLedgerDAO(IConnectionDAO connection) + { + return new LedgerDAO(connection); + } + + public override IMaintenanceDAO GetMaintenanceDAO(IConnectionDAO connection) + { + return new MaintenanceDAO(connection); + } + + public override IMembershipDAO GetMembershipDAO(IConnectionDAO connection) + { + return new MembershipDAO(connection); + } + + public override IPaymentSheetDAO GetPaymentSheetDAO(IConnectionDAO connection) + { + return new PaymentSheetDAO(connection); + } + + public override IProductDAO GetProductDAO(IConnectionDAO connection) + { + return new ProductDAO(connection); + } + + public override IProductTypeDAO GetProductTypeDAO(IConnectionDAO connection) + { + return new ProductTypeDAO(connection); + } + + public override IRequirementDAO GetRequirementDAO(IConnectionDAO connection) + { + return new RequirementDAO(connection); + } + + public override ISalarySheetDAO GetSalarySheetDAO(IConnectionDAO connection) + { + return new SalarySheetDAO(connection); + } + + public override ITaxDAO GetTaxDAO(IConnectionDAO connection) + { + return new TaxDAO(connection); + } + + public override IUserDAO GetUserDAO(IConnectionDAO connection) + { + return new UserDAO(connection); + } + + public override IVerificationDAO GetVerificationDAO(IConnectionDAO connection) + { + return new VerificationDAO(connection); + } + + public override IVoucherDAO GetVoucherDAO(IConnectionDAO connection) + { + return new VoucherDAO(connection); + } + + public override IConnectionDAO Connection + { + get { return new Tanshu.WebAccounts.PostgresDAO.PostgresConnectionDAO(); } + } + + public override ICashFlowDAO GetCashFlowDAO(IConnectionDAO connection) + { + return new CashFlowDAO(connection); + } + + public override IClosingStockDAO GetClosingStockDAO(IConnectionDAO connection) + { + return new ClosingStockDAO(connection); + } + + public override IEntriesDAO GetEntriesDAO(IConnectionDAO connection) + { + return new EntriesDAO(connection); + } + + public override IIssueReportsDAO GetIssueReportsDAO(IConnectionDAO connection) + { + return new IssueReportsDAO(connection); + } + + public override ILedgerReportDAO GetLedgerReportDAO(IConnectionDAO connection) + { + return new LedgerReportDAO(connection); + } + + public override ILiabilityReportsDAO GetLiabilityReportsDAO(IConnectionDAO connection) + { + return new LiabilityReportsDAO(connection); + } + + public override IProductLedgerDAO GetProductLedgerDAO(IConnectionDAO connection) + { + return new ProductLedgerDAO(connection); + } + + public override IProfitLossDAO GetProfitLossDAO(IConnectionDAO connection) + { + return new ProfitLossDAO(connection); + } + + public override IPurchaseDAO GetPurchaseDAO(IConnectionDAO connection) + { + return new PurchaseDAO(connection); + } + + public override IStockDAO GetStockDAO(IConnectionDAO connection) + { + return new StockDAO(connection); + } + } +} diff --git a/Tanshu.Accounts.DAOFactory/Properties/AssemblyInfo.cs b/Tanshu.Accounts.DAOFactory/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b13f1e3 --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.WebAccounts.DAOFactory")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.WebAccounts.DAOFactory")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4d63472a-b214-416c-a26b-1f963d39743b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.DAOFactory/SqlServerDAOFactory.cs b/Tanshu.Accounts.DAOFactory/SqlServerDAOFactory.cs new file mode 100644 index 0000000..55a9676 --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/SqlServerDAOFactory.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Tanshu.Accounts.SqlDAO; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.DAOFactory +{ + public class SqlServerDAOFactory : GetFactory + { + public override IAdvanceDAO GetAdvanceDAO(IConnectionDAO connection) + { + return new AdvanceDAO(connection); + } + + public override ICheckoutDAO GetCheckoutDAO(DateTime startDate, DateTime finishDate, Guid userID, IConnectionDAO connection) + { + return new CheckoutDAO(startDate, finishDate, userID, connection); + } + + public override IConnectionDAO Connection + { + get { return new Tanshu.Accounts.SqlDAO.SqlConnectionDAO(); } + } + + public override ICustomerDAO GetCustomerDAO(IConnectionDAO connection) + { + return new CustomerDAO(connection); + } + + public override IInventoryDAO GetInventoryDAO(IConnectionDAO connection) + { + return new InventoryDAO(connection); + } + + public override ILedgerDAO GetLedgerDAO(IConnectionDAO connection) + { + return new LedgerDAO(connection); + } + + public override IManagementDAO GetManagementDAO(DateTime startDate, DateTime finishDate, IConnectionDAO connection) + { + return new ManagementDAO(startDate, finishDate, connection); + } + + public override IMembershipDAO GetMembershipDAO(IConnectionDAO connection) + { + return new MembershipDAO(connection); + } + + public override IPaymentDAO GetPaymentDAO(IConnectionDAO connection) + { + return new PaymentDAO(connection); + } + + public override IProductDAO GetProductDAO(IConnectionDAO connection) + { + return new ProductDAO(connection); + } + + public override ISalesAnalysisDAO GetSalesAnalysisDAO(IConnectionDAO connection) + { + return new SalesAnalysisDAO(connection); + } + + public override ISaleVoucherDAO GetSaleVoucherDAO(IConnectionDAO connection) + { + return new SaleVoucherDAO(connection); + } + + public override ISaleVoucherMixDAO GetSaleVoucherMixDAO(IConnectionDAO connection) + { + return new SaleVoucherMixDAO(connection); + } + + public override IUserDAO GetUserDAO(IConnectionDAO connection) + { + return new UserDAO(connection); + } + + public override IVoucherDAO GetVoucherDAO(IConnectionDAO connection) + { + return new VoucherDAO(connection); + } + + public override IWaiterDAO GetWaiterDAO(IConnectionDAO connection) + { + return new WaiterDAO(connection); + } + } +} diff --git a/Tanshu.Accounts.DAOFactory/Tanshu.Accounts.DAOFactory.csproj b/Tanshu.Accounts.DAOFactory/Tanshu.Accounts.DAOFactory.csproj new file mode 100644 index 0000000..f744d2c --- /dev/null +++ b/Tanshu.Accounts.DAOFactory/Tanshu.Accounts.DAOFactory.csproj @@ -0,0 +1,76 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {AC7AA7C5-4712-4992-B733-092D703E7AA9} + Library + Properties + Tanshu.Accounts.DAOFactory + Tanshu.Accounts.DAOFactory + v3.5 + 512 + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + False + ..\Include\Tanshu.Data.dll + + + + + + + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + {B755D152-37C3-47D6-A721-3AD17A8EF316} + Tanshu.Accounts.SqlDAO + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.Helpers/ControlFactory.cs b/Tanshu.Accounts.Helpers/ControlFactory.cs new file mode 100644 index 0000000..3392dab --- /dev/null +++ b/Tanshu.Accounts.Helpers/ControlFactory.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Drawing; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.Helpers +{ + public static class ControlFactory + { + public static void GenerateButtons(ref Panel panel, Rectangle clientArea, int x, int y, int border, List list, ButtonClickDelegate bcDelegate) + { + int width = (clientArea.Width - (border * (x - 1))) / x; + int height = (clientArea.Height - (border * (y - 1))) / y; + int left = 0, top = 0, count = 0; + for (int i = 0; i < x; i++) + { + left = clientArea.Left + (i * (width + border)); + for (int j = 0; j < y; j++) + { + count++; + if (list.Count < count) + break; + top = clientArea.Top + (j * (height + border)); + ProductDisplaySmallBO item = list[(i * x) + j]; + Button btn = GetButton(string.Format("{0}-{1}", i, j), item.Name, width, height, left, top, item.ProductID, bcDelegate); + panel.Controls.Add(btn); + } + } + } + + public static void GenerateButtons(ref Panel panel, Rectangle clientArea, int x, int y, int border, ButtonClickDelegate bcDelegate) + { + int width = (clientArea.Width - (border * (x - 1))) / x; + int height = (clientArea.Height - (border * (y - 1))) / y; + for (int i = 0; i < x; i++) + { + int left = clientArea.Left + (i * (width + border)); + for (int j = 0; j < y; j++) + { + int top = clientArea.Top + (j * (height + border)); + Button btn = GetButton(string.Format("{0}-{1}", i, j), string.Format("{0}-{1}", i, j), width, height, left, top, string.Format("{0}-{1} Clicked", i, j), bcDelegate); + panel.Controls.Add(btn); + } + } + } + private static TextBox GetTextBox(string name, string text, int width, int height, int x, int y, object tag, ButtonClickDelegate bcDelegate) + { + TextBox textBox = CreateControl(ControlType.TextBox, name, text, width, height, x, y) as TextBox; + textBox.Tag = tag; + if (bcDelegate != null) + textBox.Click += new EventHandler(bcDelegate); + return textBox; + } + private static Button GetButton(string name, string text, int width, int height, int x, int y, object tag, ButtonClickDelegate bcDelegate) + { + Button button = CreateControl(ControlType.Button, name, text, width, height, x, y) as Button; + button.Tag = tag; + if (bcDelegate != null) + button.Click += new EventHandler(bcDelegate); + return button; + } + private static Control CreateControl(ControlType controlType, string name, string text, int width, int height, int x, int y) + { + switch (controlType) + { + case ControlType.TextBox: + { + TextBox textBox = new TextBox(); + textBox.Name = name; + textBox.Text = text; + textBox.Width = width; + textBox.Height = height; + textBox.Left = x; + textBox.Top = y; + return textBox; + } + case ControlType.Button: + { + Button button = new Button(); + button.Name = name; + button.Text = text; + button.Width = width; + button.Height = height; + button.Left = x; + button.Top = y; + return button; + } + default: + throw new ArgumentOutOfRangeException(); + } + + } + } + public enum ControlType + { + TextBox = 1, + Button = 2 + } + public delegate void ButtonClickDelegate(object sender, EventArgs e); +} \ No newline at end of file diff --git a/Tanshu.Accounts.Helpers/CustomStructs.cs b/Tanshu.Accounts.Helpers/CustomStructs.cs new file mode 100644 index 0000000..5d540ea --- /dev/null +++ b/Tanshu.Accounts.Helpers/CustomStructs.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.Serialization; +using Tanshu.Common; + +namespace Tanshu.Accounts.Helpers +{ + public class StringType + { + string description; + public StringType(string description) + { + this.description = description; + } + + public string Description + { + get { return description; } + set { description = value; } + } + } +} diff --git a/Tanshu.Accounts.Helpers/Properties/AssemblyInfo.cs b/Tanshu.Accounts.Helpers/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3b87f50 --- /dev/null +++ b/Tanshu.Accounts.Helpers/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.Accounts.Library")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.Accounts.Library")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("81ae2a4e-3508-4031-8868-0fced349f818")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.Helpers/SelectBill.cs b/Tanshu.Accounts.Helpers/SelectBill.cs new file mode 100644 index 0000000..a28839e --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectBill.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Accounts.Contracts; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + public class SelectBill : Tanshu.Data.BaseSelector + { + public SelectBill(GetData getData, bool autoClose) + : base(getData, true, "List of Bills") + { + //grid.Columns["CustomerID"].Visible = false; + //grid.Columns["LedgerID"].Visible = false; + } + + protected override void FilterChanged(Dictionary filter) + { + //data = CustomerProxy.GetCustomers(filter["Universal"].Split(' ')).ToList(); + //bindingSource.DataSource = data; + } + protected override void UpdateDisplay(PendingBillsBO item) + { + //if (item == null) + // DisplayLabel = ""; + //else + // DisplayLabel = string.Format("Chosen Customer is {0} with phone number {1}", item.Name, item.Phone); + } + protected override PendingBillsBO HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + e.Handled = false; + return null; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + } +} diff --git a/Tanshu.Accounts.Helpers/SelectCustomer.cs b/Tanshu.Accounts.Helpers/SelectCustomer.cs new file mode 100644 index 0000000..b3ae65e --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectCustomer.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.BI; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + public class SelectCustomer : Tanshu.Data.BaseSelector + { + public event CustomerEventHandler customerEvent; + public SelectCustomer(GetData getData, bool autoClose) : base(getData, true, "List of Products") + { + List filters = new List(); + filters.Add("Universal"); + SetFilterColumns(filters); + grid.Columns["CustomerID"].Visible = false; + grid.Columns["LedgerID"].Visible = false; + } + + protected override void FilterChanged(Dictionary filter) + { + //data = new CustomerBI().GetFilteredCustomers(filter["Universal"].Split(' ')).ToList(); + data = getData(filter); + bindingSource.DataSource = data; + } + protected override void UpdateDisplay(CustomerBO item) + { + if (item == null) + DisplayLabel = ""; + else + DisplayLabel = string.Format("Chosen Customer is {0} with phone number {1}", item.Name, item.Phone); + } + protected override CustomerBO HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + CustomerBO customer = bindingSource.Current as CustomerBO; + + if (customerEvent == null) + { + e.Handled = false; + return customer; + } + Guid? id = null; + if ((customer != null) && (e.KeyCode == Keys.F2)) + id = customer.CustomerID; + + if ((e.KeyCode == Keys.F1) || (e.KeyCode == Keys.F2)) + { + customer = customerEvent(sender, new CustomerEventArgs(id, base.filterColumns["Universal"])); + e.Handled = customer != null; + } + return customer; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + } + public delegate CustomerBO CustomerEventHandler(object sender, CustomerEventArgs e); + public class CustomerEventArgs : EventArgs + { + public CustomerEventArgs(Guid? customerID, string phone) + { + CustomerID = customerID; + Phone = phone; + } + public Guid? CustomerID + { + get; + private set; + } + public string Phone + { + get; + private set; + } + } +} diff --git a/Tanshu.Accounts.Helpers/SelectProduct.cs b/Tanshu.Accounts.Helpers/SelectProduct.cs new file mode 100644 index 0000000..684d147 --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectProduct.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Accounts.Contracts; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + public class SelectProduct : Tanshu.Data.BaseSelector + { + public SelectProduct(GetData getData, bool autoClose) + : base(getData, true, "List of Products") + { + List filters = new List(); + filters.Add("Name"); + filters.Add("Type"); + SetFilterColumns(filters); + grid.Columns["ProductID"].Visible = false; + } + + protected override void FilterChanged(Dictionary filter) + { + data = getData(filter); + bindingSource.DataSource = data; + } + + protected override void UpdateDisplay(ProductDisplaySmallBO item) + { + if (item == null) + DisplayLabel = ""; + else + DisplayLabel = string.Format("Chosen Product {0} with rate Rs. {1}", item.Name, item.Price); + } + protected override ProductDisplaySmallBO HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + e.Handled = false; + return null; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + } +} diff --git a/Tanshu.Accounts.Helpers/SelectUser.cs b/Tanshu.Accounts.Helpers/SelectUser.cs new file mode 100644 index 0000000..dc152cb --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectUser.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Accounts.Contracts; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + public class SelectUser : Tanshu.Data.BaseSelector + { + public event UserEventHandler userEvent; + public SelectUser(GetData getData, bool autoClose) : base (getData, true, "Select a User") + { + List filters = new List(); + filters.Add("Name"); + SetFilterColumns(filters); + grid.Columns["UserID"].Visible = false; + grid.Columns["timestamp"].Visible = false; + } + + protected override void FilterChanged(Dictionary filter) + { + //data = originalData.Where(d => d.Name.ToLower().Contains(filter["Name"].ToLower())).ToList(); + data = getData(filter); + bindingSource.DataSource = data; + } + protected override void UpdateDisplay(UserBO item) + { + if (item == null) + DisplayLabel = ""; + else + DisplayLabel = string.Format("User Name: {0}", item.Name); + } + protected override UserBO HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + UserBO user = bindingSource.Current as UserBO; + + if (userEvent == null) + { + e.Handled = false; + return user; + } + if ((e.KeyCode != Keys.F1) && (e.KeyCode != Keys.F2)) + { + e.Handled = false; + return user; + } + if ((user == null) && (e.KeyCode == Keys.F2)) + { + e.Handled = false; + return user; + } + + if (e.KeyCode == Keys.F1) + user = new UserBO(); + UserEventArgs userEventArgs = new UserEventArgs(user); + user = userEvent(sender, userEventArgs); + + e.Handled = userEventArgs.Handled; + return user; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + } + public delegate UserBO UserEventHandler(object sender, UserEventArgs e); + public class UserEventArgs : EventArgs + { + public UserEventArgs(UserBO user) + { + User = user; + Handled = false; + } + + public UserBO User + { + get; + private set; + } + + public bool Handled + { + get; + set; + } + } +} diff --git a/Tanshu.Accounts.Helpers/SelectVoidReason.cs b/Tanshu.Accounts.Helpers/SelectVoidReason.cs new file mode 100644 index 0000000..8900358 --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectVoidReason.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + + public class SelectVoidReason : Tanshu.Data.BaseSelector + { + public SelectVoidReason(GetData getData, bool autoClose) + : base(getData, autoClose, "Reason for Voiding Bill") + { + List filters = new List(); + filters.Add("Name"); + SetFilterColumns(filters); + } + + protected override void FilterChanged(Dictionary filter) + { + //data = originalData.Where(d => d.Description.ToLower().Contains(filter["Name"].ToLower())).ToList(); + data = getData(filter); + bindingSource.DataSource = data; + } + protected override void UpdateDisplay(StringType item) + { + if (item == null) + DisplayLabel = ""; + else + DisplayLabel = string.Format("Reason for Voiding: {0}", item); + } + protected override StringType HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + e.Handled = false; + return null; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + + } +} diff --git a/Tanshu.Accounts.Helpers/SelectWaiter.cs b/Tanshu.Accounts.Helpers/SelectWaiter.cs new file mode 100644 index 0000000..f0a8286 --- /dev/null +++ b/Tanshu.Accounts.Helpers/SelectWaiter.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Linq; +using Tanshu.Accounts.Contracts; +using Tanshu.Data; + +namespace Tanshu.Accounts.Helpers +{ + public class SelectWaiter : Tanshu.Data.BaseSelector + { + public event WaiterEventHandler waiterEvent; + public SelectWaiter(GetData getData, bool autoClose) : base(getData, true, "Select a Waiter") + { + List filters = new List(); + filters.Add("Name"); + SetFilterColumns(filters); + grid.Columns["WaiterID"].Visible = false; + grid.Columns["timestamp"].Visible = false; + } + + protected override void FilterChanged(Dictionary filter) + { + //data = originalData.Where(d => d.Name.ToLower().Contains(filter["Name"].ToLower())).ToList(); + data = getData(filter); + bindingSource.DataSource = data; + } + protected override void UpdateDisplay(WaiterBO item) + { + if (item == null) + DisplayLabel = ""; + else + DisplayLabel = string.Format("Waiter Name: {0}", item.Name); + } + protected override WaiterBO HandleKeydown(object sender, ExtendedKeyEventArgs e) + { + WaiterBO waiter = bindingSource.Current as WaiterBO; + + if (waiterEvent == null) + { + e.Handled = false; + return waiter; + } + + WaiterEventArgs eventArgs = new WaiterEventArgs(null, 1); + switch (e.KeyCode) + { + case Keys.F1: + { + waiter = new WaiterBO { Name = base.filterColumns["Name"].Trim() }; + eventArgs = new WaiterEventArgs(waiter, 1); + break; + } + case Keys.F2: + { + if (waiter != null) + waiter.Name = base.filterColumns["Name"].Trim(); + eventArgs = new WaiterEventArgs(waiter, 2); + break; + } + case Keys.F8: + { + if (waiter != null) + eventArgs = new WaiterEventArgs(waiter, 3); + break; + } + } + if ((waiter != null) && ((e.KeyCode == Keys.F1) || (e.KeyCode == Keys.F2) || (e.KeyCode == Keys.F8))) + waiter = waiterEvent(sender, eventArgs); + + e.Handled = eventArgs.Handled; + return waiter; + } + #region Designer Code + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + } + + #endregion + #endregion + } + public delegate WaiterBO WaiterEventHandler(object sender, WaiterEventArgs e); + public class WaiterEventArgs : EventArgs + { + public WaiterEventArgs(WaiterBO waiter, int action) + { + Waiter = waiter; + Action = action; + Handled = false; + } + + public WaiterBO Waiter + { + get; + private set; + } + + public int Action + { + get; + private set; + } + + public bool Handled + { + get; + set; + } + } +} diff --git a/Tanshu.Accounts.Helpers/Tanshu.Accounts.Helpers.csproj b/Tanshu.Accounts.Helpers/Tanshu.Accounts.Helpers.csproj new file mode 100644 index 0000000..e906ba8 --- /dev/null +++ b/Tanshu.Accounts.Helpers/Tanshu.Accounts.Helpers.csproj @@ -0,0 +1,110 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3E28AAA5-A493-4446-8188-C615245943B4} + Library + Properties + Tanshu.Accounts.Helpers + Tanshu.Accounts.Helpers + v3.5 + 512 + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + 3.5 + + + + 3.0 + + + + 3.5 + + + 3.5 + + + + + False + ..\Include\Tanshu.Common.dll + + + False + ..\Include\Tanshu.Data.dll + + + + + + Form + + + Code + + + Form + + + Form + + + Form + + + Form + + + Form + + + + + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB} + Tanshu.Accounts.BI + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/App.config b/Tanshu.Accounts.PointOfSale/App.config new file mode 100644 index 0000000..515e678 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/App.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ApplyRates.Designer.cs b/Tanshu.Accounts.PointOfSale/ApplyRates.Designer.cs new file mode 100644 index 0000000..b423216 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ApplyRates.Designer.cs @@ -0,0 +1,158 @@ +namespace Accounts.PointOfSale +{ + partial class ApplyRates + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.btnSave = new System.Windows.Forms.Button(); + this.dgvItems = new System.Windows.Forms.DataGridView(); + this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.productIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.oldRateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.newRateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.timestampDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.deleteDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsApplyRates = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsApplyRates)).BeginInit(); + this.SuspendLayout(); + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(523, 326); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(81, 23); + this.btnSave.TabIndex = 31; + this.btnSave.Text = "Apply Rates"; + this.btnSave.UseVisualStyleBackColor = true; + // + // dgvItems + // + this.dgvItems.AllowUserToAddRows = false; + this.dgvItems.AllowUserToDeleteRows = false; + this.dgvItems.AllowUserToOrderColumns = true; + this.dgvItems.AllowUserToResizeRows = false; + this.dgvItems.AutoGenerateColumns = false; + this.dgvItems.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgvItems.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvItems.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idDataGridViewTextBoxColumn, + this.productIDDataGridViewTextBoxColumn, + this.oldRateDataGridViewTextBoxColumn, + this.newRateDataGridViewTextBoxColumn, + this.timestampDataGridViewTextBoxColumn, + this.deleteDataGridViewTextBoxColumn}); + this.dgvItems.DataSource = this.bsApplyRates; + this.dgvItems.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dgvItems.Location = new System.Drawing.Point(2, 3); + this.dgvItems.MultiSelect = false; + this.dgvItems.Name = "dgvItems"; + this.dgvItems.RowHeadersVisible = false; + this.dgvItems.RowTemplate.Height = 19; + this.dgvItems.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvItems.ShowRowErrors = false; + this.dgvItems.Size = new System.Drawing.Size(602, 317); + this.dgvItems.TabIndex = 30; + // + // idDataGridViewTextBoxColumn + // + this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; + this.idDataGridViewTextBoxColumn.HeaderText = "Id"; + this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; + this.idDataGridViewTextBoxColumn.Width = 41; + // + // productIDDataGridViewTextBoxColumn + // + this.productIDDataGridViewTextBoxColumn.DataPropertyName = "ProductID"; + this.productIDDataGridViewTextBoxColumn.HeaderText = "ProductID"; + this.productIDDataGridViewTextBoxColumn.Name = "productIDDataGridViewTextBoxColumn"; + this.productIDDataGridViewTextBoxColumn.Width = 80; + // + // oldRateDataGridViewTextBoxColumn + // + this.oldRateDataGridViewTextBoxColumn.DataPropertyName = "OldRate"; + this.oldRateDataGridViewTextBoxColumn.HeaderText = "OldRate"; + this.oldRateDataGridViewTextBoxColumn.Name = "oldRateDataGridViewTextBoxColumn"; + this.oldRateDataGridViewTextBoxColumn.Width = 71; + // + // newRateDataGridViewTextBoxColumn + // + this.newRateDataGridViewTextBoxColumn.DataPropertyName = "NewRate"; + this.newRateDataGridViewTextBoxColumn.HeaderText = "NewRate"; + this.newRateDataGridViewTextBoxColumn.Name = "newRateDataGridViewTextBoxColumn"; + this.newRateDataGridViewTextBoxColumn.Width = 77; + // + // timestampDataGridViewTextBoxColumn + // + this.timestampDataGridViewTextBoxColumn.DataPropertyName = "timestamp"; + this.timestampDataGridViewTextBoxColumn.HeaderText = "timestamp"; + this.timestampDataGridViewTextBoxColumn.Name = "timestampDataGridViewTextBoxColumn"; + this.timestampDataGridViewTextBoxColumn.Width = 79; + // + // deleteDataGridViewTextBoxColumn + // + this.deleteDataGridViewTextBoxColumn.DataPropertyName = "Delete"; + this.deleteDataGridViewTextBoxColumn.HeaderText = "Delete"; + this.deleteDataGridViewTextBoxColumn.Name = "deleteDataGridViewTextBoxColumn"; + this.deleteDataGridViewTextBoxColumn.Width = 63; + // + // bsApplyRates + // + this.bsApplyRates.DataSource = typeof(Accounts.Proxy.NewProductRates); + // + // ApplyRates + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(606, 354); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.dgvItems); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ApplyRates"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Apply Rates"; + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsApplyRates)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.DataGridView dgvItems; + private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn productIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn oldRateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn newRateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn timestampDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn deleteDataGridViewTextBoxColumn; + private System.Windows.Forms.BindingSource bsApplyRates; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ApplyRates.cs b/Tanshu.Accounts.PointOfSale/ApplyRates.cs new file mode 100644 index 0000000..fff1d2b --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ApplyRates.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Accounts.PointOfSale +{ + public partial class ApplyRates : Form + { + public ApplyRates() + { + InitializeComponent(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/ApplyRates.resx b/Tanshu.Accounts.PointOfSale/ApplyRates.resx new file mode 100644 index 0000000..a001137 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ApplyRates.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ComplexProductForm.Designer.cs b/Tanshu.Accounts.PointOfSale/ComplexProductForm.Designer.cs new file mode 100644 index 0000000..4038522 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ComplexProductForm.Designer.cs @@ -0,0 +1,226 @@ +namespace Accounts.PointOfSale +{ + partial class ComplexProductForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.dgvItems = new System.Windows.Forms.DataGridView(); + this.deleteDataGridViewButtonColumn = new System.Windows.Forms.DataGridViewButtonColumn(); + this.bsComplexProducts = new System.Windows.Forms.BindingSource(this.components); + this.btnAdd = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.txtQuantity = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.bsProducts = new System.Windows.Forms.BindingSource(this.components); + this.cmbChildItems = new System.Windows.Forms.ComboBox(); + this.bsChildProducts = new System.Windows.Forms.BindingSource(this.components); + this.btnPrint = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsComplexProducts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsProducts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsChildProducts)).BeginInit(); + this.SuspendLayout(); + // + // dgvItems + // + this.dgvItems.AllowUserToAddRows = false; + this.dgvItems.AutoGenerateColumns = false; + this.dgvItems.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvItems.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.deleteDataGridViewButtonColumn}); + this.dgvItems.DataSource = this.bsComplexProducts; + this.dgvItems.Location = new System.Drawing.Point(16, 74); + this.dgvItems.Name = "dgvItems"; + this.dgvItems.Size = new System.Drawing.Size(490, 420); + this.dgvItems.TabIndex = 2; + this.dgvItems.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvItems_CellClick); + // + // deleteDataGridViewButtonColumn + // + this.deleteDataGridViewButtonColumn.HeaderText = "Delete"; + this.deleteDataGridViewButtonColumn.Name = "deleteDataGridViewButtonColumn"; + this.deleteDataGridViewButtonColumn.Text = "Delete"; + this.deleteDataGridViewButtonColumn.UseColumnTextForButtonValue = true; + this.deleteDataGridViewButtonColumn.Width = 64; + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(431, 45); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 3; + this.btnAdd.Text = "Add"; + this.btnAdd.UseVisualStyleBackColor = true; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(52, 50); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(53, 13); + this.label2.TabIndex = 4; + this.label2.Text = "Child Item"; + // + // txtQuantity + // + this.txtQuantity.Location = new System.Drawing.Point(375, 48); + this.txtQuantity.Name = "txtQuantity"; + this.txtQuantity.Size = new System.Drawing.Size(50, 20); + this.txtQuantity.TabIndex = 7; + this.txtQuantity.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(330, 51); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(39, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Quality"; + // + // cmbChildItems + // + this.cmbChildItems.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbChildItems.FormattingEnabled = true; + this.cmbChildItems.Location = new System.Drawing.Point(111, 47); + this.cmbChildItems.Name = "cmbChildItems"; + this.cmbChildItems.Size = new System.Drawing.Size(213, 21); + this.cmbChildItems.TabIndex = 9; + // + // btnPrint + // + this.btnPrint.Location = new System.Drawing.Point(431, 501); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(75, 23); + this.btnPrint.TabIndex = 11; + this.btnPrint.Text = "Print"; + this.btnPrint.UseVisualStyleBackColor = true; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(111, 12); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(100, 20); + this.textBox1.TabIndex = 12; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(0, 0); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(100, 20); + this.textBox2.TabIndex = 13; + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(8, 8); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(100, 20); + this.textBox3.TabIndex = 14; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(16, 16); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(100, 20); + this.textBox4.TabIndex = 15; + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(24, 24); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(121, 21); + this.comboBox1.TabIndex = 16; + // + // ComplexProductForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(521, 531); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.btnPrint); + this.Controls.Add(this.cmbChildItems); + this.Controls.Add(this.txtQuantity); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.dgvItems); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ComplexProductForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Complex Products F7-Complex Product, F6-Child Item"; + this.Load += new System.EventHandler(this.ComplexProductForm_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ComplexProductForm_KeyDown); + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsComplexProducts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsProducts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsChildProducts)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvItems; + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtQuantity; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cmbChildItems; + private System.Windows.Forms.BindingSource bsProducts; + private System.Windows.Forms.BindingSource bsChildProducts; + private System.Windows.Forms.BindingSource bsComplexProducts; + private System.Windows.Forms.DataGridViewTextBoxColumn complexProductIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn productNameDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn quantityDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn productIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn childIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn timestampDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewButtonColumn deleteDataGridViewButtonColumn; + private System.Windows.Forms.Button btnPrint; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.ComboBox comboBox1; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ComplexProductForm.cs b/Tanshu.Accounts.PointOfSale/ComplexProductForm.cs new file mode 100644 index 0000000..d21a16e --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ComplexProductForm.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using Accounts.Proxy; +using System.Threading; +using Accounts.BI; + +namespace Accounts.PointOfSale +{ + public partial class ComplexProductForm : Form + { + public ComplexProductForm() + { + InitializeComponent(); + } + + private void ComplexProductForm_Load(object sender, EventArgs e) + { + FillCombos(); + } + + private void FillCombos() + { + //cmbComplexProducts.DisplayMember = "Name"; + //cmbComplexProducts.ValueMember = "ProductID"; + //cmbComplexProducts.DataSource = ProductProxy.GetComplexProducts().ToList(); + cmbChildItems.DisplayMember = "Name"; + cmbChildItems.ValueMember = "ProductID"; + cmbChildItems.DataSource = ProductBI.GetProducts(); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + //if ((cmbComplexProducts.Text != "") && (cmbChildItems.Text != "") && (txtQuantity.Text.Trim() != "")) + // Save(); + //else + //{ + // System.Windows.Forms.MessageBox.Show("Please select missing information"); + // cmbComplexProducts.Focus(); + //} + } + + private void Save() + { + //ComplexProduct complexProduct = new ComplexProduct(); + //complexProduct.ProductID = (Guid)cmbComplexProducts.SelectedValue; + //complexProduct.ChildID = (Guid)cmbChildItems.SelectedValue; + //complexProduct.Quantity = Convert.ToDecimal(txtQuantity.Text); + //ProductProxy.AddComplexProduct(complexProduct); + //GetComplexProductItems(); + } + + + + private void GetComplexProductItems() + { + //List list = new List(); + //if (cmbComplexProducts.Text != "") + //{ + // list = ProductProxy.GetChildProductList(new Guid(cmbComplexProducts.SelectedValue.ToString())); + // dgvItems.DataSource = list; + //} + } + + private void btnProducts_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + ProductsForm form = new ProductsForm(); + form.ShowDialog(); + form.Dispose(); + + FillCombos(); + } + } + + private void dgvItems_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (dgvItems.Columns[e.ColumnIndex].Name == "deleteDataGridViewButtonColumn") + { + ProductProxy.DeleteComplexProductFromID((Guid)dgvItems.Rows[e.RowIndex].Cells[0].Value); + GetComplexProductItems(); + } + } + + private void cmbComplexProducts_SelectedIndexChanged(object sender, EventArgs e) + { + GetComplexProductItems(); + } + + private void ComplexProductForm_KeyDown(object sender, KeyEventArgs e) + { + //if (e.KeyCode == Keys.F7) + //{ + // using (SelectProduct selectProduct = new SelectProduct(ProductProxy.GetAllComplexProductList(), true)) + // { + // selectProduct.ShowDialog(); + // if (selectProduct.SelectedItem != null) + // { + // cmbComplexProducts.SelectedValue = selectProduct.SelectedItem.productID; + // GetComplexProductItems(); + // cmbChildItems.Focus(); + // } + // } + //} + if (e.KeyCode == Keys.F6) + { + using (SelectProduct selectProduct = new SelectProduct(ProductBI.GetProducts(), true)) + { + selectProduct.ShowDialog(); + if (selectProduct.SelectedItem != null) + { + cmbChildItems.SelectedValue = selectProduct.SelectedItem.ProductID; + txtQuantity.Focus(); + } + } + } + } + + private void btnPrint_Click(object sender, EventArgs e) + { + //Accounts.Print.Thermal.PrintComplexProducts(new Guid(cmbComplexProducts.SelectedValue.ToString())); + } + + } +} diff --git a/Tanshu.Accounts.PointOfSale/ComplexProductForm.resx b/Tanshu.Accounts.PointOfSale/ComplexProductForm.resx new file mode 100644 index 0000000..d3b14ae --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ComplexProductForm.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 253, 17 + + + 17, 17 + + + 123, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/CustomEnums.cs b/Tanshu.Accounts.PointOfSale/CustomEnums.cs new file mode 100644 index 0000000..e09da02 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/CustomEnums.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Tanshu.Accounts.PointOfSale +{ + public enum SaleFormState + { + Waiting = 0, + Billing = 1 + } + public enum FormMode + { + Normal = 0, + Edit = 1, + AddNew = 2 + } +} diff --git a/Tanshu.Accounts.PointOfSale/CustomerForm.Designer.cs b/Tanshu.Accounts.PointOfSale/CustomerForm.Designer.cs new file mode 100644 index 0000000..cfc6786 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/CustomerForm.Designer.cs @@ -0,0 +1,392 @@ +namespace Accounts.PointOfSale +{ + partial class CustomerForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CustomerForm)); + this.bsMain = new System.Windows.Forms.BindingSource(this.components); + this.txtName = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.cmbLedger = new System.Windows.Forms.ComboBox(); + this.bsLedger = new System.Windows.Forms.BindingSource(this.components); + this.label3 = new System.Windows.Forms.Label(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.txtPhone = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.txtRemarks = new System.Windows.Forms.TextBox(); + this.bnMain = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCancelItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorEditItem = new System.Windows.Forms.ToolStripButton(); + this.chkImportant = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.bsMain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLedger)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnMain)).BeginInit(); + this.bnMain.SuspendLayout(); + this.SuspendLayout(); + // + // bsMain + // + this.bsMain.DataSource = typeof(Accounts.Proxy.Customer); + // + // txtName + // + this.txtName.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMain, "Name", true)); + this.txtName.Location = new System.Drawing.Point(72, 12); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(291, 20); + this.txtName.TabIndex = 0; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(31, 12); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(35, 13); + this.label2.TabIndex = 4; + this.label2.Text = "Name"; + // + // cmbLedger + // + this.cmbLedger.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsMain, "LedgerID", true)); + this.cmbLedger.DataSource = this.bsLedger; + this.cmbLedger.DisplayMember = "Name"; + this.cmbLedger.FormattingEnabled = true; + this.cmbLedger.Location = new System.Drawing.Point(72, 45); + this.cmbLedger.Name = "cmbLedger"; + this.cmbLedger.Size = new System.Drawing.Size(291, 21); + this.cmbLedger.TabIndex = 1; + this.cmbLedger.ValueMember = "LedgerID"; + // + // bsLedger + // + this.bsLedger.DataSource = typeof(Accounts.Proxy.Ledger); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(26, 45); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(40, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Ledger"; + // + // txtAddress + // + this.txtAddress.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMain, "Address", true)); + this.txtAddress.Location = new System.Drawing.Point(72, 119); + this.txtAddress.Multiline = true; + this.txtAddress.Name = "txtAddress"; + this.txtAddress.Size = new System.Drawing.Size(291, 85); + this.txtAddress.TabIndex = 3; + // + // txtPhone + // + this.txtPhone.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMain, "Phone", true)); + this.txtPhone.Location = new System.Drawing.Point(72, 80); + this.txtPhone.Name = "txtPhone"; + this.txtPhone.Size = new System.Drawing.Size(291, 20); + this.txtPhone.TabIndex = 2; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(17, 210); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(49, 13); + this.label4.TabIndex = 9; + this.label4.Text = "Remarks"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(21, 122); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(45, 13); + this.label5.TabIndex = 10; + this.label5.Text = "Address"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(8, 80); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(58, 13); + this.label6.TabIndex = 11; + this.label6.Text = "Phone No."; + // + // txtRemarks + // + this.txtRemarks.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMain, "Remarks", true)); + this.txtRemarks.Location = new System.Drawing.Point(72, 210); + this.txtRemarks.Multiline = true; + this.txtRemarks.Name = "txtRemarks"; + this.txtRemarks.Size = new System.Drawing.Size(291, 78); + this.txtRemarks.TabIndex = 4; + // + // bnMain + // + this.bnMain.AddNewItem = this.bindingNavigatorAddNewItem; + this.bnMain.BindingSource = this.bsMain; + this.bnMain.CountItem = this.bindingNavigatorCountItem; + this.bnMain.DeleteItem = null; + this.bnMain.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bnMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.bindingNavigatorSaveItem, + this.bindingNavigatorCancelItem, + this.bindingNavigatorEditItem}); + this.bnMain.Location = new System.Drawing.Point(0, 314); + this.bnMain.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bnMain.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bnMain.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bnMain.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bnMain.Name = "bnMain"; + this.bnMain.PositionItem = this.bindingNavigatorPositionItem; + this.bnMain.Size = new System.Drawing.Size(386, 25); + this.bnMain.TabIndex = 13; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "Add new"; + this.bindingNavigatorAddNewItem.Click += new System.EventHandler(this.bindingNavigatorAddNewItem_Click); + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(36, 22); + this.bindingNavigatorCountItem.Text = "of {0}"; + this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "Move first"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "Move previous"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "Position"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "Current position"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "Move next"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "Move last"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "Delete"; + // + // bindingNavigatorSaveItem + // + this.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.bindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorSaveItem.Image"))); + this.bindingNavigatorSaveItem.ImageTransparentColor = System.Drawing.Color.Magenta; + this.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem"; + this.bindingNavigatorSaveItem.Size = new System.Drawing.Size(35, 22); + this.bindingNavigatorSaveItem.Text = "Save"; + this.bindingNavigatorSaveItem.Click += new System.EventHandler(this.bindingNavigatorSaveItem_Click); + // + // bindingNavigatorCancelItem + // + this.bindingNavigatorCancelItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.bindingNavigatorCancelItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorCancelItem.Image"))); + this.bindingNavigatorCancelItem.ImageTransparentColor = System.Drawing.Color.Magenta; + this.bindingNavigatorCancelItem.Name = "bindingNavigatorCancelItem"; + this.bindingNavigatorCancelItem.Size = new System.Drawing.Size(43, 22); + this.bindingNavigatorCancelItem.Text = "Cancel"; + this.bindingNavigatorCancelItem.Click += new System.EventHandler(this.bindingNavigatorCancelItem_Click); + // + // bindingNavigatorEditItem + // + this.bindingNavigatorEditItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; + this.bindingNavigatorEditItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorEditItem.Image"))); + this.bindingNavigatorEditItem.ImageTransparentColor = System.Drawing.Color.Magenta; + this.bindingNavigatorEditItem.Name = "bindingNavigatorEditItem"; + this.bindingNavigatorEditItem.Size = new System.Drawing.Size(29, 22); + this.bindingNavigatorEditItem.Text = "Edit"; + this.bindingNavigatorEditItem.Click += new System.EventHandler(this.bindingNavigatorEditItem_Click); + // + // chkImportant + // + this.chkImportant.AutoSize = true; + this.chkImportant.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.chkImportant.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.bsMain, "Important", true)); + this.chkImportant.Location = new System.Drawing.Point(20, 294); + this.chkImportant.Name = "chkImportant"; + this.chkImportant.Size = new System.Drawing.Size(70, 17); + this.chkImportant.TabIndex = 14; + this.chkImportant.Text = "Important"; + this.chkImportant.UseVisualStyleBackColor = true; + // + // CustomerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(386, 339); + this.Controls.Add(this.chkImportant); + this.Controls.Add(this.bnMain); + this.Controls.Add(this.txtRemarks); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.txtPhone); + this.Controls.Add(this.txtAddress); + this.Controls.Add(this.label3); + this.Controls.Add(this.cmbLedger); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtName); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CustomerForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Customers"; + this.Load += new System.EventHandler(this.CustomerForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.bsMain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLedger)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnMain)).EndInit(); + this.bnMain.ResumeLayout(false); + this.bnMain.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox cmbLedger; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtAddress; + private System.Windows.Forms.TextBox txtPhone; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox txtRemarks; + private System.Windows.Forms.BindingNavigator bnMain; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorSaveItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorCancelItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorEditItem; + private System.Windows.Forms.BindingSource bsMain; + private System.Windows.Forms.BindingSource bsLedger; + private System.Windows.Forms.CheckBox chkImportant; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/CustomerForm.cs b/Tanshu.Accounts.PointOfSale/CustomerForm.cs new file mode 100644 index 0000000..325e1bd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/CustomerForm.cs @@ -0,0 +1,138 @@ +using System; +using System.Windows.Forms; +using Accounts.Proxy; + +namespace Accounts.PointOfSale +{ + public partial class CustomerForm : Form + { + Nullable customerID; + FormMode formMode; + FormMode editMode; + public CustomerForm(FormMode mode, Nullable customerID) + { + InitializeComponent(); + formMode = mode; + this.customerID = customerID; + bsLedger.DataSource = DataAccess.GetCustomerLedgers(); + if (formMode == FormMode.Edit) + bsMain.DataSource = CustomerProxy.GetSingleCustomerList(customerID.Value); + else + bsMain.DataSource = CustomerProxy.GetCustomers(null); + } + + private void CustomerForm_Load(object sender, EventArgs e) + { + SetFormMode(); + SetNavigation(editMode); + } + private void SetFormMode() + { + if (formMode == FormMode.Edit) + { + bsMain.Position = 0; + bindingNavigatorSaveItem.Enabled = true; + editMode = formMode; + } + else if (formMode == FormMode.AddNew) + { + bsMain.AddNew(); + bindingNavigatorEditItem.Enabled = false; + editMode = formMode; + } + else + { + editMode = FormMode.Normal; + } + } + + private void SetNavigation(FormMode mode) + { + bool enableEdit; + if (mode == FormMode.Normal) + enableEdit = false; + else //FormMode.AddNew || FormMode.Edit + enableEdit = true; + // Controls + txtName.ReadOnly = !enableEdit; + cmbLedger.Enabled = enableEdit; + txtPhone.ReadOnly = !enableEdit; + txtAddress.ReadOnly = !enableEdit; + txtRemarks.ReadOnly = !enableEdit; + chkImportant.Enabled = enableEdit; + // Other Controls + bnMain.AddNewItem.Enabled = !enableEdit; + bindingNavigatorDeleteItem.Enabled = !enableEdit; + bindingNavigatorSaveItem.Visible = enableEdit; + bindingNavigatorCancelItem.Visible = enableEdit; + bindingNavigatorEditItem.Visible = !enableEdit; + // Move Controls + bnMain.MoveFirstItem.Enabled = !enableEdit; + bnMain.MoveLastItem.Enabled = !enableEdit; + bnMain.MoveNextItem.Enabled = !enableEdit; + bnMain.MovePreviousItem.Enabled = !enableEdit; + bnMain.PositionItem.Enabled = !enableEdit; + } + + private void bindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + Customer customer = new Customer(); + if (formMode == FormMode.AddNew) + customer.CustomerID = Guid.NewGuid(); + else + customer.CustomerID = customerID.Value; + customer.Name = txtName.Text; + customer.LedgerID = ((Ledger)bsLedger.Current).LedgerID; + customer.Phone = txtPhone.Text; + customer.Address = txtAddress.Text; + customer.Remarks = txtRemarks.Text; + customer.Important = chkImportant.Checked; + customer.CompanyID = Accounts.Security.CurrentUser.user.CompanyID; + if (formMode == FormMode.AddNew) + { + customer.Code = CustomerProxy.MaxCode; + CustomerProxy.AddCustomer(customer); + MessageBox.Show("Record Saved"); + } + else + { + CustomerProxy.UpdateCustomer(customer); + MessageBox.Show("Record updated"); + } + txtName.Text = ""; + txtAddress.Text = ""; + txtRemarks.Text = ""; + txtPhone.Text = ""; + chkImportant.Checked = false; + this.Dispose(); + } + + private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) + { + + } + + private void bindingNavigatorCancelItem_Click(object sender, EventArgs e) + { + if (formMode != FormMode.Normal) + this.Close(); + } + + private void bindingNavigatorEditItem_Click(object sender, EventArgs e) + { + Customer customer = new Customer(); + customer.Name = txtName.Text; + customer.CustomerID = (Guid)customerID; + customer.LedgerID = ((Ledger)bsLedger.Current).LedgerID; + customer.Phone = txtPhone.Text; + customer.Address = txtAddress.Text; + customer.Remarks = txtRemarks.Text; + customer.Important = chkImportant.Checked; + customer.CompanyID = Accounts.Security.CurrentUser.user.CompanyID; + CustomerProxy.UpdateCustomer(customer); + MessageBox.Show("Record Updated"); + } + + } +} diff --git a/Tanshu.Accounts.PointOfSale/CustomerForm.resx b/Tanshu.Accounts.PointOfSale/CustomerForm.resx new file mode 100644 index 0000000..5d59d84 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/CustomerForm.resx @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 110, 17 + + + 201, 17 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAU1JREFUOE9jYBi0 + 4O4C9v+35nH+vzqH6//FGbz/SXbodaDGP48a//952PD/5GQB0g04P50XbsDBHhHSDTg+SRBoe93/Pw+q + /u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B/ + /nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2p + QI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vAzpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/ + O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAN6QgH5898NfyD2+9+arE+6Ad3pumD/gnB9nBHpBrQk + GfxviDf8XxNr/L8y2oR0A0hO++RqAAAkI9ieo+gjUwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL + U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI + VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ + QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 + /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 + cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j + 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR + dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb + NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE + s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL + U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI + VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ + QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 + /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 + cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j + 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR + dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb + NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE + s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL + U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI + VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ + QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 + /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 + cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j + 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR + dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb + NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE + s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.Designer.cs new file mode 100644 index 0000000..e5d4304 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.Designer.cs @@ -0,0 +1,232 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class LogViewerForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.Label6 = new System.Windows.Forms.Label(); + this.Label2 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dgvPayments = new System.Windows.Forms.DataGridView(); + this.bindingSource = new System.Windows.Forms.BindingSource(this.components); + this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.messageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.levelDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.loggerDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.exceptionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPayments)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit(); + this.SuspendLayout(); + // + // Label6 + // + this.Label6.AutoSize = true; + this.Label6.Location = new System.Drawing.Point(12, 41); + this.Label6.Name = "Label6"; + this.Label6.Size = new System.Drawing.Size(33, 13); + this.Label6.TabIndex = 104; + this.Label6.Text = "Level"; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(219, 16); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(20, 13); + this.Label2.TabIndex = 97; + this.Label2.Text = "To"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(12, 16); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(30, 13); + this.Label1.TabIndex = 95; + this.Label1.Text = "From"; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.Items.AddRange(new object[] { + "Opening", + "Receipt", + "Payment", + "Additional Void", + "Retained at Night"}); + this.cmbType.Location = new System.Drawing.Point(68, 38); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(322, 21); + this.cmbType.TabIndex = 105; + // + // dtpTo + // + this.dtpTo.CustomFormat = "dd-MMM-yyyy"; + this.dtpTo.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpTo.Location = new System.Drawing.Point(245, 12); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(145, 20); + this.dtpTo.TabIndex = 98; + this.dtpTo.ValueChanged += new System.EventHandler(this.dtpTo_ValueChanged); + // + // dtpFrom + // + this.dtpFrom.CustomFormat = "dd-MMM-yyyy"; + this.dtpFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpFrom.Location = new System.Drawing.Point(68, 12); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(132, 20); + this.dtpFrom.TabIndex = 96; + this.dtpFrom.ValueChanged += new System.EventHandler(this.dtpFrom_ValueChanged); + // + // dgvPayments + // + this.dgvPayments.AllowUserToAddRows = false; + this.dgvPayments.AllowUserToDeleteRows = false; + this.dgvPayments.AllowUserToResizeRows = false; + this.dgvPayments.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPayments.AutoGenerateColumns = false; + this.dgvPayments.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgvPayments.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPayments.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idDataGridViewTextBoxColumn, + this.dateDataGridViewTextBoxColumn, + this.messageDataGridViewTextBoxColumn, + this.levelDataGridViewTextBoxColumn, + this.loggerDataGridViewTextBoxColumn, + this.exceptionDataGridViewTextBoxColumn}); + this.dgvPayments.DataSource = this.bindingSource; + this.dgvPayments.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dgvPayments.Location = new System.Drawing.Point(12, 65); + this.dgvPayments.Name = "dgvPayments"; + this.dgvPayments.ReadOnly = true; + this.dgvPayments.RowHeadersVisible = false; + this.dgvPayments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvPayments.Size = new System.Drawing.Size(378, 459); + this.dgvPayments.TabIndex = 110; + // + // bindingSource + // + this.bindingSource.DataSource = typeof(Tanshu.Logging.SqlLog); + // + // idDataGridViewTextBoxColumn + // + this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; + this.idDataGridViewTextBoxColumn.HeaderText = "Id"; + this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; + this.idDataGridViewTextBoxColumn.ReadOnly = true; + this.idDataGridViewTextBoxColumn.Width = 41; + // + // dateDataGridViewTextBoxColumn + // + this.dateDataGridViewTextBoxColumn.DataPropertyName = "Date"; + this.dateDataGridViewTextBoxColumn.HeaderText = "Date"; + this.dateDataGridViewTextBoxColumn.Name = "dateDataGridViewTextBoxColumn"; + this.dateDataGridViewTextBoxColumn.ReadOnly = true; + this.dateDataGridViewTextBoxColumn.Width = 55; + // + // messageDataGridViewTextBoxColumn + // + this.messageDataGridViewTextBoxColumn.DataPropertyName = "Message"; + this.messageDataGridViewTextBoxColumn.HeaderText = "Message"; + this.messageDataGridViewTextBoxColumn.Name = "messageDataGridViewTextBoxColumn"; + this.messageDataGridViewTextBoxColumn.ReadOnly = true; + this.messageDataGridViewTextBoxColumn.Width = 75; + // + // levelDataGridViewTextBoxColumn + // + this.levelDataGridViewTextBoxColumn.DataPropertyName = "Level"; + this.levelDataGridViewTextBoxColumn.HeaderText = "Level"; + this.levelDataGridViewTextBoxColumn.Name = "levelDataGridViewTextBoxColumn"; + this.levelDataGridViewTextBoxColumn.ReadOnly = true; + this.levelDataGridViewTextBoxColumn.Width = 58; + // + // loggerDataGridViewTextBoxColumn + // + this.loggerDataGridViewTextBoxColumn.DataPropertyName = "Logger"; + this.loggerDataGridViewTextBoxColumn.HeaderText = "Logger"; + this.loggerDataGridViewTextBoxColumn.Name = "loggerDataGridViewTextBoxColumn"; + this.loggerDataGridViewTextBoxColumn.ReadOnly = true; + this.loggerDataGridViewTextBoxColumn.Width = 65; + // + // exceptionDataGridViewTextBoxColumn + // + this.exceptionDataGridViewTextBoxColumn.DataPropertyName = "Exception"; + this.exceptionDataGridViewTextBoxColumn.HeaderText = "Exception"; + this.exceptionDataGridViewTextBoxColumn.Name = "exceptionDataGridViewTextBoxColumn"; + this.exceptionDataGridViewTextBoxColumn.ReadOnly = true; + this.exceptionDataGridViewTextBoxColumn.Width = 79; + // + // LogViewerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(402, 536); + this.Controls.Add(this.dgvPayments); + this.Controls.Add(this.Label6); + this.Controls.Add(this.Label2); + this.Controls.Add(this.Label1); + this.Controls.Add(this.cmbType); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.MaximizeBox = false; + this.Name = "LogViewerForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Payments"; + this.Load += new System.EventHandler(this.PaymentForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgvPayments)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Label Label6; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.ComboBox cmbType; + internal System.Windows.Forms.DateTimePicker dtpTo; + internal System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DataGridView dgvPayments; + private System.Windows.Forms.BindingSource bindingSource; + private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn dateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn messageDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn levelDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn loggerDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn exceptionDataGridViewTextBoxColumn; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.cs b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.cs new file mode 100644 index 0000000..e0c8e8a --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class LogViewerForm : Form + { + private static readonly Tanshu.Logging.SqlLogger log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + public LogViewerForm() + { + InitializeComponent(); + } + + private void PaymentForm_Load(object sender, EventArgs e) + { + dtpFrom.Value = DateTime.Now; + dtpTo.Value = DateTime.Now; + GridBind(); + } + + private void GridBind() + { + DateTime startDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy 00:00:00}", dtpFrom.Value)); + DateTime endDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy 23:59:59}", dtpTo.Value)); + bindingSource.DataSource = log.GetLog(startDate, endDate, Tanshu.Logging.LogType.Info); + } + + private void dtpFrom_ValueChanged(object sender, EventArgs e) + { + GridBind(); + } + + private void dtpTo_ValueChanged(object sender, EventArgs e) + { + GridBind(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.resx b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.resx new file mode 100644 index 0000000..62ea5eb --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Logging/LogViewerForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/LoginForm.Designer.cs b/Tanshu.Accounts.PointOfSale/LoginForm.Designer.cs new file mode 100644 index 0000000..b8589f8 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/LoginForm.Designer.cs @@ -0,0 +1,123 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class LoginForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnExit = new System.Windows.Forms.Button(); + this.btnLogin = new System.Windows.Forms.Button(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.Label2 = new System.Windows.Forms.Label(); + this.txtUserName = new System.Windows.Forms.TextBox(); + this.Label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // btnExit + // + this.btnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnExit.Location = new System.Drawing.Point(203, 64); + this.btnExit.Name = "btnExit"; + this.btnExit.Size = new System.Drawing.Size(75, 23); + this.btnExit.TabIndex = 3; + this.btnExit.Text = "E&xit"; + this.btnExit.UseVisualStyleBackColor = true; + this.btnExit.Click += new System.EventHandler(this.btnExit_Click); + // + // btnLogin + // + this.btnLogin.Location = new System.Drawing.Point(78, 64); + this.btnLogin.Name = "btnLogin"; + this.btnLogin.Size = new System.Drawing.Size(75, 23); + this.btnLogin.TabIndex = 2; + this.btnLogin.Text = "&Login"; + this.btnLogin.UseVisualStyleBackColor = true; + this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click); + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(78, 38); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.PasswordChar = '*'; + this.txtPassword.Size = new System.Drawing.Size(200, 20); + this.txtPassword.TabIndex = 1; + this.txtPassword.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtPassword_KeyDown); + // + // Label2 + // + this.Label2.Location = new System.Drawing.Point(12, 41); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(60, 20); + this.Label2.TabIndex = 5; + this.Label2.Text = "Password"; + // + // txtUserName + // + this.txtUserName.Location = new System.Drawing.Point(78, 12); + this.txtUserName.Name = "txtUserName"; + this.txtUserName.Size = new System.Drawing.Size(200, 20); + this.txtUserName.TabIndex = 0; + this.txtUserName.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtUserName_KeyDown); + // + // Label1 + // + this.Label1.Location = new System.Drawing.Point(12, 15); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(60, 20); + this.Label1.TabIndex = 4; + this.Label1.Text = "Username"; + // + // LoginForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnExit; + this.ClientSize = new System.Drawing.Size(290, 99); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.Label2); + this.Controls.Add(this.txtUserName); + this.Controls.Add(this.Label1); + this.Controls.Add(this.btnLogin); + this.Controls.Add(this.btnExit); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "LoginForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Login"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnExit; + private System.Windows.Forms.Button btnLogin; + internal System.Windows.Forms.TextBox txtPassword; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.TextBox txtUserName; + internal System.Windows.Forms.Label Label1; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/LoginForm.cs b/Tanshu.Accounts.PointOfSale/LoginForm.cs new file mode 100644 index 0000000..50ac118 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/LoginForm.cs @@ -0,0 +1,56 @@ +using System; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class LoginForm : Form + { + private static readonly Tanshu.Logging.SqlLogger log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private bool isAuthenticated; + private string userName; + public LoginForm() + { + InitializeComponent(); + isAuthenticated = false; + userName = null; + } + + private void txtUserName_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Return) + txtPassword.Focus(); + } + + private void txtPassword_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Return) + btnLogin_Click(sender, e); + } + + private void btnLogin_Click(object sender, EventArgs e) + { + userName = txtUserName.Text.Trim(); + isAuthenticated = new MembershipBI().ValidateUser(userName, Tanshu.Common.Md5.Hash(txtPassword.Text, "Salt")); + + if (isAuthenticated) + this.Close(); + else + MessageBox.Show("Username or password is not valid"); + + } + + public bool UserName(out string userName) + { + userName = this.userName; + return isAuthenticated; + } + + private void btnExit_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/LoginForm.resx b/Tanshu.Accounts.PointOfSale/LoginForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/LoginForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/MainForm.cs b/Tanshu.Accounts.PointOfSale/MainForm.cs new file mode 100644 index 0000000..848a272 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/MainForm.cs @@ -0,0 +1,325 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.PointOfSale.Updates; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class MainForm : Form + { + public MainForm() + { + InitializeComponent(); + } + + private void btnPrint_Click(object sender, EventArgs e) + { + MessageBox.Show(CurrentUser.user.Name); + using (RoleBI roleBI = RoleFactoryBI.GetRoleBI("Sales/Checkout")) + { + if (roleBI.IsAllowed) + using (Cashier_Checkout_Form frmChashierCheckOut = new Cashier_Checkout_Form()) + { + frmChashierCheckOut.ShowDialog(); + } + } + + //Dictionary amounts = new Dictionary(); + //if (txt1000.Text != "") amounts.Add(1000, Convert.ToInt32(txt1000.Text)); + //if (txt500.Text != "") amounts.Add(500, Convert.ToInt32(txt500.Text)); + //if (txt100.Text != "") amounts.Add(100, Convert.ToInt32(txt100.Text)); + //if (txt50.Text != "") amounts.Add(50, Convert.ToInt32(txt50.Text)); + //if (txt20.Text != "") amounts.Add(20, Convert.ToInt32(txt20.Text)); + //if (txt10.Text != "") amounts.Add(10, Convert.ToInt32(txt10.Text)); + //if (txt5.Text != "") amounts.Add(5, Convert.ToInt32(txt5.Text)); + //if (txt2.Text != "") amounts.Add(2, Convert.ToInt32(txt2.Text)); + //if (txt1.Text != "") amounts.Add(1, Convert.ToInt32(txt1.Text)); + //Accounts.Print.Thermal.PrintCash(amounts); + } + + private void saleToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/SalesBill")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + new ProductBI().UpdateShortName(); + using (SalesForm frmSale = new SalesForm()) + frmSale.ShowDialog(); + } + } + + private void txt1000_TextChanged(object sender, EventArgs e) + { + try + { + int Amount = 0; + Amount += 1000 * Convert.ToInt16(txt1000.Text); + Amount += 500 * (txt500.Text == "" ? 0 : Convert.ToInt16(txt500.Text)); + Amount += 100 * (txt100.Text == "" ? 0 : Convert.ToInt16(txt100.Text)); + Amount += 50 * (txt50.Text == "" ? 0 : Convert.ToInt16(txt50.Text)); + Amount += 20 * (txt20.Text == "" ? 0 : Convert.ToInt16(txt20.Text)); + Amount += 10 * (txt10.Text == "" ? 0 : Convert.ToInt16(txt10.Text)); + Amount += 5 * (txt5.Text == "" ? 0 : Convert.ToInt16(txt5.Text)); + Amount += 2 * (txt2.Text == "" ? 0 : Convert.ToInt16(txt2.Text)); + Amount += 1 * (txt1.Text == "" ? 0 : Convert.ToInt16(txt1.Text)); + txtTotal.Text = Amount.ToString(); + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show("Error Number " + ex.Source + "\n\r" + ex.Message); + } + } + + private void advancesToolStripMenuItem_Click(object sender, EventArgs e) + { + RecieveAdvanceForm frmReceivedAdvance = new RecieveAdvanceForm(); + frmReceivedAdvance.ShowDialog(); + frmReceivedAdvance.Dispose(); + } + + private void paymentsToolStripMenuItem_Click(object sender, EventArgs e) + { + AdjustAdvanceForm frmAdjustAdvancesForm = new AdjustAdvanceForm(); + frmAdjustAdvancesForm.ShowDialog(); + frmAdjustAdvancesForm.Dispose(); + } + + private void paymentsToolStripMenuItem1_Click(object sender, EventArgs e) + { + LogViewerForm frmPayments = new LogViewerForm(); + frmPayments.ShowDialog(); + frmPayments.Dispose(); + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void createNewUserToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Security/ManageRoles")) + MessageBox.Show("You are not authorized to access"); + else + { + using (SelectUser form = new SelectUser(new UserBI().GetFilteredUsers, true)) + { + form.userEvent += new UserEventHandler(form_userEvent); + form.ShowDialog(); + } + } + } + + UserBO form_userEvent(object sender, UserEventArgs e) + { + UserBO user = e.User; + + if (user == null) + { + using (UserForm form = new UserForm(null)) + { + form.ShowDialog(); + } + } + else + { + using (UserForm form = new UserForm(user.UserID)) + { + form.ShowDialog(); + } + } + e.Handled = true; + return new UserBO(); + } + + private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e) + { + ChangePassword frm = new ChangePassword(); + frm.ShowDialog(); + frm.Dispose(); + } + + private void assignRolesToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Security/ManageRoles")) + MessageBox.Show("You are not authorized to access"); + else + { + AssignRoles frm = new AssignRoles(); + frm.ShowDialog(); + frm.Dispose(); + } + } + + private void paymentsToolStripMenuItem1_Click_1(object sender, EventArgs e) + { + using (PaymentForm frm = new PaymentForm()) + { + frm.ShowDialog(); + } + } + + private void MainForm_Load(object sender, EventArgs e) + { + this.Text = "Main Menu - User: " + CurrentUser.user.Name; + } + + private void salesAnalysisToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/SaleDetail")) + MessageBox.Show("You are not authorized to access"); + else + { + frmSaleAnalysisForm frmSalesAnalysis = new frmSaleAnalysisForm(); + frmSalesAnalysis.ShowDialog(); + frmSalesAnalysis.Dispose(); + } + } + + private void cashierCheckoutToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/Checkout")) + MessageBox.Show("You are not authorized to access"); + else + { + Cashier_Checkout_Form frmChashierCheckOut = new Cashier_Checkout_Form(); + frmChashierCheckOut.ShowDialog(); + frmChashierCheckOut.Dispose(); + } + + } + + private void customersToolStripMenuItem_Click(object sender, EventArgs e) + { + //Guid c=new Guid("28BFB512-6B92-4AA1-A931-7993593B8E07"); + using (CustomersForm Customer = new CustomersForm(null, "")) + { + Customer.ShowDialog(); + } + } + + private void productsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + ProductsForm form = new ProductsForm(); + form.ShowDialog(); + form.Dispose(); + } + } + + private void prToolStripMenuItem_Click(object sender, EventArgs e) + { + ProductTypes ProductType = new ProductTypes(); + ProductType.ShowDialog(); + ProductType.Dispose(); + } + + private void toolStripMenuItem1_Click(object sender, EventArgs e) + { + //ProductNewRates ProductRates = new ProductNewRates(); + //ProductRates.ShowDialog(); + //ProductRates.Dispose(); + } + + private void applyNewRatesToolStripMenuItem_Click(object sender, EventArgs e) + { + //ApplyRates ApplyRate = new ApplyRates(); + //ApplyRate.ShowDialog(); + //ApplyRate.Dispose(); + } + + private void masterToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void complexProductsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + //ComplexProductForm form = new ComplexProductForm(); + //form.ShowDialog(); + //form.Dispose(); + } + } + + private void viewLogToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Log/View")) + MessageBox.Show("You are not authorized to access"); + else + using (LogViewerForm form = new LogViewerForm()) + form.ShowDialog(); + } + + private void updateToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + using (UpdateForm form = new UpdateForm()) + { + form.ShowDialog(); + } + } + } + + private void reportToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + using (SaleTaxReportForm form = new SaleTaxReportForm()) + { + form.ShowDialog(); + } + } + } + + private void updateBillsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + { + MessageBox.Show("You are not authorized to access"); + } + else + { + using (UpdateSales form = new UpdateSales()) + { + form.ShowDialog(); + } + } + } + + private void autoToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Master/Products")) + MessageBox.Show("You are not authorized to access"); + else + using (ReplaceForm form = new ReplaceForm()) + form.ShowDialog(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/MainForm.designer.cs b/Tanshu.Accounts.PointOfSale/MainForm.designer.cs new file mode 100644 index 0000000..caec151 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/MainForm.designer.cs @@ -0,0 +1,566 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CashCalculator = new System.Windows.Forms.GroupBox(); + this.txtTotal = new System.Windows.Forms.TextBox(); + this.txt1 = new System.Windows.Forms.TextBox(); + this.txt2 = new System.Windows.Forms.TextBox(); + this.txt5 = new System.Windows.Forms.TextBox(); + this.txt10 = new System.Windows.Forms.TextBox(); + this.txt20 = new System.Windows.Forms.TextBox(); + this.txt50 = new System.Windows.Forms.TextBox(); + this.txt100 = new System.Windows.Forms.TextBox(); + this.txt500 = new System.Windows.Forms.TextBox(); + this.txt1000 = new System.Windows.Forms.TextBox(); + this.btnPrint = new System.Windows.Forms.Button(); + this.lblTotal = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.masterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.prToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.productsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.complexProductsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.customersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.reportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.autoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.updateBillsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.transactionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.advancesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.paymentsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.paymentsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.permissionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.createNewUserToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.changePasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.assignRolesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.reportsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.cashierCheckoutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.salesAnalysisToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.viewLogToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.CashCalculator.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // CashCalculator + // + this.CashCalculator.Controls.Add(this.txtTotal); + this.CashCalculator.Controls.Add(this.txt1); + this.CashCalculator.Controls.Add(this.txt2); + this.CashCalculator.Controls.Add(this.txt5); + this.CashCalculator.Controls.Add(this.txt10); + this.CashCalculator.Controls.Add(this.txt20); + this.CashCalculator.Controls.Add(this.txt50); + this.CashCalculator.Controls.Add(this.txt100); + this.CashCalculator.Controls.Add(this.txt500); + this.CashCalculator.Controls.Add(this.txt1000); + this.CashCalculator.Controls.Add(this.btnPrint); + this.CashCalculator.Controls.Add(this.lblTotal); + this.CashCalculator.Controls.Add(this.label10); + this.CashCalculator.Controls.Add(this.label9); + this.CashCalculator.Controls.Add(this.label8); + this.CashCalculator.Controls.Add(this.label7); + this.CashCalculator.Controls.Add(this.label6); + this.CashCalculator.Controls.Add(this.label5); + this.CashCalculator.Controls.Add(this.label4); + this.CashCalculator.Controls.Add(this.label3); + this.CashCalculator.Controls.Add(this.label2); + this.CashCalculator.Controls.Add(this.label1); + this.CashCalculator.Location = new System.Drawing.Point(13, 33); + this.CashCalculator.Name = "CashCalculator"; + this.CashCalculator.Size = new System.Drawing.Size(174, 346); + this.CashCalculator.TabIndex = 25; + this.CashCalculator.TabStop = false; + // + // txtTotal + // + this.txtTotal.Location = new System.Drawing.Point(51, 286); + this.txtTotal.Name = "txtTotal"; + this.txtTotal.ReadOnly = true; + this.txtTotal.Size = new System.Drawing.Size(100, 20); + this.txtTotal.TabIndex = 21; + // + // txt1 + // + this.txt1.Location = new System.Drawing.Point(51, 256); + this.txt1.Name = "txt1"; + this.txt1.Size = new System.Drawing.Size(100, 20); + this.txt1.TabIndex = 20; + this.txt1.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt2 + // + this.txt2.Location = new System.Drawing.Point(51, 226); + this.txt2.Name = "txt2"; + this.txt2.Size = new System.Drawing.Size(100, 20); + this.txt2.TabIndex = 19; + this.txt2.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt5 + // + this.txt5.Location = new System.Drawing.Point(51, 196); + this.txt5.Name = "txt5"; + this.txt5.Size = new System.Drawing.Size(100, 20); + this.txt5.TabIndex = 18; + this.txt5.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt10 + // + this.txt10.Location = new System.Drawing.Point(51, 166); + this.txt10.Name = "txt10"; + this.txt10.Size = new System.Drawing.Size(100, 20); + this.txt10.TabIndex = 17; + this.txt10.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt20 + // + this.txt20.Location = new System.Drawing.Point(51, 136); + this.txt20.Name = "txt20"; + this.txt20.Size = new System.Drawing.Size(100, 20); + this.txt20.TabIndex = 16; + this.txt20.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt50 + // + this.txt50.Location = new System.Drawing.Point(51, 106); + this.txt50.Name = "txt50"; + this.txt50.Size = new System.Drawing.Size(100, 20); + this.txt50.TabIndex = 15; + this.txt50.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt100 + // + this.txt100.Location = new System.Drawing.Point(51, 76); + this.txt100.Name = "txt100"; + this.txt100.Size = new System.Drawing.Size(100, 20); + this.txt100.TabIndex = 14; + this.txt100.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt500 + // + this.txt500.Location = new System.Drawing.Point(51, 46); + this.txt500.Name = "txt500"; + this.txt500.Size = new System.Drawing.Size(100, 20); + this.txt500.TabIndex = 13; + this.txt500.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // txt1000 + // + this.txt1000.Location = new System.Drawing.Point(51, 16); + this.txt1000.Name = "txt1000"; + this.txt1000.Size = new System.Drawing.Size(100, 20); + this.txt1000.TabIndex = 12; + this.txt1000.TextChanged += new System.EventHandler(this.txt1000_TextChanged); + // + // btnPrint + // + this.btnPrint.Location = new System.Drawing.Point(51, 317); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(100, 20); + this.btnPrint.TabIndex = 11; + this.btnPrint.Text = "Print"; + this.btnPrint.UseVisualStyleBackColor = true; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // lblTotal + // + this.lblTotal.AutoSize = true; + this.lblTotal.Location = new System.Drawing.Point(13, 289); + this.lblTotal.Name = "lblTotal"; + this.lblTotal.Size = new System.Drawing.Size(31, 13); + this.lblTotal.TabIndex = 10; + this.lblTotal.Text = "Total"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(26, 262); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(18, 13); + this.label10.TabIndex = 9; + this.label10.Text = "1x"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(25, 231); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(18, 13); + this.label9.TabIndex = 8; + this.label9.Text = "2x"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(25, 201); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(18, 13); + this.label8.TabIndex = 7; + this.label8.Text = "5x"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(19, 171); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(24, 13); + this.label7.TabIndex = 6; + this.label7.Text = "10x"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(19, 141); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(24, 13); + this.label6.TabIndex = 5; + this.label6.Text = "20x"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(18, 112); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(24, 13); + this.label5.TabIndex = 4; + this.label5.Text = "50x"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 93); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(0, 13); + this.label4.TabIndex = 3; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(14, 79); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(30, 13); + this.label3.TabIndex = 2; + this.label3.Text = "100x"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(15, 50); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(30, 13); + this.label2.TabIndex = 1; + this.label2.Text = "500x"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 21); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(36, 13); + this.label1.TabIndex = 0; + this.label1.Text = "1000x"; + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.masterToolStripMenuItem, + this.transactionsToolStripMenuItem, + this.permissionsToolStripMenuItem, + this.reportsToolStripMenuItem, + this.exitToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(792, 24); + this.menuStrip1.TabIndex = 26; + this.menuStrip1.Text = "menuStrip1"; + // + // masterToolStripMenuItem + // + this.masterToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.prToolStripMenuItem, + this.productsToolStripMenuItem, + this.complexProductsToolStripMenuItem, + this.customersToolStripMenuItem, + this.updateToolStripMenuItem, + this.reportToolStripMenuItem, + this.autoToolStripMenuItem, + this.updateBillsToolStripMenuItem}); + this.masterToolStripMenuItem.Name = "masterToolStripMenuItem"; + this.masterToolStripMenuItem.Size = new System.Drawing.Size(55, 20); + this.masterToolStripMenuItem.Text = "Master"; + this.masterToolStripMenuItem.Click += new System.EventHandler(this.masterToolStripMenuItem_Click); + // + // prToolStripMenuItem + // + this.prToolStripMenuItem.Name = "prToolStripMenuItem"; + this.prToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.prToolStripMenuItem.Text = "Product Type"; + this.prToolStripMenuItem.Click += new System.EventHandler(this.prToolStripMenuItem_Click); + // + // productsToolStripMenuItem + // + this.productsToolStripMenuItem.Name = "productsToolStripMenuItem"; + this.productsToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.productsToolStripMenuItem.Text = "Products"; + this.productsToolStripMenuItem.Click += new System.EventHandler(this.productsToolStripMenuItem_Click); + // + // complexProductsToolStripMenuItem + // + this.complexProductsToolStripMenuItem.Name = "complexProductsToolStripMenuItem"; + this.complexProductsToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.complexProductsToolStripMenuItem.Text = "Complex Products"; + this.complexProductsToolStripMenuItem.Click += new System.EventHandler(this.complexProductsToolStripMenuItem_Click); + // + // customersToolStripMenuItem + // + this.customersToolStripMenuItem.Name = "customersToolStripMenuItem"; + this.customersToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.customersToolStripMenuItem.Text = "Customers"; + this.customersToolStripMenuItem.Click += new System.EventHandler(this.customersToolStripMenuItem_Click); + // + // updateToolStripMenuItem + // + this.updateToolStripMenuItem.Name = "updateToolStripMenuItem"; + this.updateToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.updateToolStripMenuItem.Text = "Update"; + this.updateToolStripMenuItem.Click += new System.EventHandler(this.updateToolStripMenuItem_Click); + // + // reportToolStripMenuItem + // + this.reportToolStripMenuItem.Name = "reportToolStripMenuItem"; + this.reportToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.reportToolStripMenuItem.Text = "Report"; + this.reportToolStripMenuItem.Click += new System.EventHandler(this.reportToolStripMenuItem_Click); + // + // autoToolStripMenuItem + // + this.autoToolStripMenuItem.Name = "autoToolStripMenuItem"; + this.autoToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.autoToolStripMenuItem.Text = "Auto"; + this.autoToolStripMenuItem.Click += new System.EventHandler(this.autoToolStripMenuItem_Click); + // + // updateBillsToolStripMenuItem + // + this.updateBillsToolStripMenuItem.Name = "updateBillsToolStripMenuItem"; + this.updateBillsToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.updateBillsToolStripMenuItem.Text = "Update Bills"; + this.updateBillsToolStripMenuItem.Click += new System.EventHandler(this.updateBillsToolStripMenuItem_Click); + // + // transactionsToolStripMenuItem + // + this.transactionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saleToolStripMenuItem, + this.advancesToolStripMenuItem, + this.paymentsToolStripMenuItem, + this.paymentsToolStripMenuItem1}); + this.transactionsToolStripMenuItem.Name = "transactionsToolStripMenuItem"; + this.transactionsToolStripMenuItem.Size = new System.Drawing.Size(86, 20); + this.transactionsToolStripMenuItem.Text = "Transactions"; + // + // saleToolStripMenuItem + // + this.saleToolStripMenuItem.Name = "saleToolStripMenuItem"; + this.saleToolStripMenuItem.Size = new System.Drawing.Size(170, 22); + this.saleToolStripMenuItem.Text = "Sale"; + this.saleToolStripMenuItem.Click += new System.EventHandler(this.saleToolStripMenuItem_Click); + // + // advancesToolStripMenuItem + // + this.advancesToolStripMenuItem.Name = "advancesToolStripMenuItem"; + this.advancesToolStripMenuItem.Size = new System.Drawing.Size(170, 22); + this.advancesToolStripMenuItem.Text = "Received Advance"; + this.advancesToolStripMenuItem.Click += new System.EventHandler(this.advancesToolStripMenuItem_Click); + // + // paymentsToolStripMenuItem + // + this.paymentsToolStripMenuItem.Name = "paymentsToolStripMenuItem"; + this.paymentsToolStripMenuItem.Size = new System.Drawing.Size(170, 22); + this.paymentsToolStripMenuItem.Text = "Adjust Advance"; + this.paymentsToolStripMenuItem.Click += new System.EventHandler(this.paymentsToolStripMenuItem_Click); + // + // paymentsToolStripMenuItem1 + // + this.paymentsToolStripMenuItem1.Name = "paymentsToolStripMenuItem1"; + this.paymentsToolStripMenuItem1.Size = new System.Drawing.Size(170, 22); + this.paymentsToolStripMenuItem1.Text = "Payments"; + this.paymentsToolStripMenuItem1.Click += new System.EventHandler(this.paymentsToolStripMenuItem1_Click_1); + // + // permissionsToolStripMenuItem + // + this.permissionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.createNewUserToolStripMenuItem, + this.changePasswordToolStripMenuItem, + this.assignRolesToolStripMenuItem}); + this.permissionsToolStripMenuItem.Name = "permissionsToolStripMenuItem"; + this.permissionsToolStripMenuItem.Size = new System.Drawing.Size(82, 20); + this.permissionsToolStripMenuItem.Text = "Permissions"; + // + // createNewUserToolStripMenuItem + // + this.createNewUserToolStripMenuItem.Name = "createNewUserToolStripMenuItem"; + this.createNewUserToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.createNewUserToolStripMenuItem.Text = "Create New User"; + this.createNewUserToolStripMenuItem.Click += new System.EventHandler(this.createNewUserToolStripMenuItem_Click); + // + // changePasswordToolStripMenuItem + // + this.changePasswordToolStripMenuItem.Name = "changePasswordToolStripMenuItem"; + this.changePasswordToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.changePasswordToolStripMenuItem.Text = "Change Password"; + this.changePasswordToolStripMenuItem.Click += new System.EventHandler(this.changePasswordToolStripMenuItem_Click); + // + // assignRolesToolStripMenuItem + // + this.assignRolesToolStripMenuItem.Name = "assignRolesToolStripMenuItem"; + this.assignRolesToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.assignRolesToolStripMenuItem.Text = "Assign Roles"; + this.assignRolesToolStripMenuItem.Click += new System.EventHandler(this.assignRolesToolStripMenuItem_Click); + // + // reportsToolStripMenuItem + // + this.reportsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.cashierCheckoutToolStripMenuItem1, + this.salesAnalysisToolStripMenuItem1, + this.viewLogToolStripMenuItem}); + this.reportsToolStripMenuItem.Name = "reportsToolStripMenuItem"; + this.reportsToolStripMenuItem.Size = new System.Drawing.Size(59, 20); + this.reportsToolStripMenuItem.Text = "Reports"; + // + // cashierCheckoutToolStripMenuItem1 + // + this.cashierCheckoutToolStripMenuItem1.Name = "cashierCheckoutToolStripMenuItem1"; + this.cashierCheckoutToolStripMenuItem1.Size = new System.Drawing.Size(167, 22); + this.cashierCheckoutToolStripMenuItem1.Text = "Cashier Checkout"; + this.cashierCheckoutToolStripMenuItem1.Click += new System.EventHandler(this.cashierCheckoutToolStripMenuItem1_Click); + // + // salesAnalysisToolStripMenuItem1 + // + this.salesAnalysisToolStripMenuItem1.Name = "salesAnalysisToolStripMenuItem1"; + this.salesAnalysisToolStripMenuItem1.Size = new System.Drawing.Size(167, 22); + this.salesAnalysisToolStripMenuItem1.Text = "Sales Analysis"; + this.salesAnalysisToolStripMenuItem1.Click += new System.EventHandler(this.salesAnalysisToolStripMenuItem1_Click); + // + // viewLogToolStripMenuItem + // + this.viewLogToolStripMenuItem.Name = "viewLogToolStripMenuItem"; + this.viewLogToolStripMenuItem.Size = new System.Drawing.Size(167, 22); + this.viewLogToolStripMenuItem.Text = "View Log"; + this.viewLogToolStripMenuItem.Click += new System.EventHandler(this.viewLogToolStripMenuItem_Click); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.exitToolStripMenuItem.Text = "Exit"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(792, 537); + this.Controls.Add(this.CashCalculator); + this.Controls.Add(this.menuStrip1); + this.MainMenuStrip = this.menuStrip1; + this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "MainForm"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.Load += new System.EventHandler(this.MainForm_Load); + this.CashCalculator.ResumeLayout(false); + this.CashCalculator.PerformLayout(); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox CashCalculator; + private System.Windows.Forms.Label lblTotal; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtTotal; + private System.Windows.Forms.TextBox txt1; + private System.Windows.Forms.TextBox txt2; + private System.Windows.Forms.TextBox txt5; + private System.Windows.Forms.TextBox txt10; + private System.Windows.Forms.TextBox txt20; + private System.Windows.Forms.TextBox txt50; + private System.Windows.Forms.TextBox txt100; + private System.Windows.Forms.TextBox txt500; + private System.Windows.Forms.TextBox txt1000; + private System.Windows.Forms.Button btnPrint; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem masterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem transactionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem permissionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saleToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem advancesToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem paymentsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem createNewUserToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem changePasswordToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem assignRolesToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem paymentsToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem reportsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem productsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem customersToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem salesAnalysisToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem cashierCheckoutToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem prToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem complexProductsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem reportToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem autoToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem viewLogToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem updateBillsToolStripMenuItem; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/MainForm.resx b/Tanshu.Accounts.PointOfSale/MainForm.resx new file mode 100644 index 0000000..541af56 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/MainForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductNewRates.Designer.cs b/Tanshu.Accounts.PointOfSale/ProductNewRates.Designer.cs new file mode 100644 index 0000000..9cfd0b6 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductNewRates.Designer.cs @@ -0,0 +1,243 @@ +namespace Accounts.PointOfSale +{ + partial class ProductNewRates + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.txtNewRate = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.cmbItem = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.dgvItems = new System.Windows.Forms.DataGridView(); + this.btnSave = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.txtOldRate = new System.Windows.Forms.TextBox(); + this.bsNewProductRates = new System.Windows.Forms.BindingSource(this.components); + this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.productIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.productNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.oldRateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.newRateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.timestampDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsNewProductRates)).BeginInit(); + this.SuspendLayout(); + // + // txtNewRate + // + this.txtNewRate.Location = new System.Drawing.Point(473, 25); + this.txtNewRate.Name = "txtNewRate"; + this.txtNewRate.Size = new System.Drawing.Size(66, 20); + this.txtNewRate.TabIndex = 28; + this.txtNewRate.Text = "0.00"; + this.txtNewRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(470, 8); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(55, 13); + this.label6.TabIndex = 27; + this.label6.Text = "New Rate"; + // + // cmbItem + // + this.cmbItem.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbItem.FormattingEnabled = true; + this.cmbItem.Location = new System.Drawing.Point(12, 25); + this.cmbItem.Name = "cmbItem"; + this.cmbItem.Size = new System.Drawing.Size(379, 21); + this.cmbItem.TabIndex = 26; + this.cmbItem.SelectedIndexChanged += new System.EventHandler(this.cmbItem_SelectedIndexChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(9, 9); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(27, 13); + this.label3.TabIndex = 25; + this.label3.Text = "Item"; + // + // dgvItems + // + this.dgvItems.AllowUserToAddRows = false; + this.dgvItems.AllowUserToDeleteRows = false; + this.dgvItems.AllowUserToResizeRows = false; + this.dgvItems.AutoGenerateColumns = false; + this.dgvItems.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgvItems.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvItems.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idDataGridViewTextBoxColumn, + this.productIDDataGridViewTextBoxColumn, + this.productNameDataGridViewTextBoxColumn, + this.oldRateDataGridViewTextBoxColumn, + this.newRateDataGridViewTextBoxColumn, + this.timestampDataGridViewTextBoxColumn}); + this.dgvItems.DataSource = this.bsNewProductRates; + this.dgvItems.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dgvItems.Location = new System.Drawing.Point(12, 62); + this.dgvItems.MultiSelect = false; + this.dgvItems.Name = "dgvItems"; + this.dgvItems.ReadOnly = true; + this.dgvItems.RowHeadersVisible = false; + this.dgvItems.RowTemplate.Height = 19; + this.dgvItems.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvItems.ShowRowErrors = false; + this.dgvItems.Size = new System.Drawing.Size(602, 317); + this.dgvItems.TabIndex = 24; + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(547, 24); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(67, 23); + this.btnSave.TabIndex = 29; + this.btnSave.Text = "Add"; + this.btnSave.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(394, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(49, 13); + this.label1.TabIndex = 30; + this.label1.Text = "Old Rate"; + // + // txtOldRate + // + this.txtOldRate.Enabled = false; + this.txtOldRate.Location = new System.Drawing.Point(397, 25); + this.txtOldRate.Name = "txtOldRate"; + this.txtOldRate.Size = new System.Drawing.Size(70, 20); + this.txtOldRate.TabIndex = 31; + this.txtOldRate.Text = "0.00"; + this.txtOldRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // bsNewProductRates + // + this.bsNewProductRates.DataSource = typeof(Accounts.Proxy.NewProductRates); + // + // idDataGridViewTextBoxColumn + // + this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; + this.idDataGridViewTextBoxColumn.HeaderText = "Id"; + this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; + this.idDataGridViewTextBoxColumn.ReadOnly = true; + this.idDataGridViewTextBoxColumn.Visible = false; + this.idDataGridViewTextBoxColumn.Width = 22; + // + // productIDDataGridViewTextBoxColumn + // + this.productIDDataGridViewTextBoxColumn.DataPropertyName = "ProductID"; + this.productIDDataGridViewTextBoxColumn.HeaderText = "ProductID"; + this.productIDDataGridViewTextBoxColumn.Name = "productIDDataGridViewTextBoxColumn"; + this.productIDDataGridViewTextBoxColumn.ReadOnly = true; + this.productIDDataGridViewTextBoxColumn.Visible = false; + this.productIDDataGridViewTextBoxColumn.Width = 61; + // + // productNameDataGridViewTextBoxColumn + // + this.productNameDataGridViewTextBoxColumn.DataPropertyName = "ProductName"; + this.productNameDataGridViewTextBoxColumn.HeaderText = "Product Name"; + this.productNameDataGridViewTextBoxColumn.Name = "productNameDataGridViewTextBoxColumn"; + this.productNameDataGridViewTextBoxColumn.ReadOnly = true; + // + // oldRateDataGridViewTextBoxColumn + // + this.oldRateDataGridViewTextBoxColumn.DataPropertyName = "OldRate"; + this.oldRateDataGridViewTextBoxColumn.HeaderText = "Old Rate"; + this.oldRateDataGridViewTextBoxColumn.Name = "oldRateDataGridViewTextBoxColumn"; + this.oldRateDataGridViewTextBoxColumn.ReadOnly = true; + this.oldRateDataGridViewTextBoxColumn.Width = 74; + // + // newRateDataGridViewTextBoxColumn + // + this.newRateDataGridViewTextBoxColumn.DataPropertyName = "NewRate"; + this.newRateDataGridViewTextBoxColumn.HeaderText = "New Rate"; + this.newRateDataGridViewTextBoxColumn.Name = "newRateDataGridViewTextBoxColumn"; + this.newRateDataGridViewTextBoxColumn.ReadOnly = true; + this.newRateDataGridViewTextBoxColumn.Width = 80; + // + // timestampDataGridViewTextBoxColumn + // + this.timestampDataGridViewTextBoxColumn.DataPropertyName = "timestamp"; + this.timestampDataGridViewTextBoxColumn.HeaderText = "timestamp"; + this.timestampDataGridViewTextBoxColumn.Name = "timestampDataGridViewTextBoxColumn"; + this.timestampDataGridViewTextBoxColumn.ReadOnly = true; + this.timestampDataGridViewTextBoxColumn.Visible = false; + this.timestampDataGridViewTextBoxColumn.Width = 79; + // + // ProductNewRates + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(626, 391); + this.Controls.Add(this.txtOldRate); + this.Controls.Add(this.label1); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.txtNewRate); + this.Controls.Add(this.label6); + this.Controls.Add(this.cmbItem); + this.Controls.Add(this.label3); + this.Controls.Add(this.dgvItems); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProductNewRates"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "New Product Rates"; + this.Load += new System.EventHandler(this.ProductNewRates_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ProductNewRates_KeyDown); + ((System.ComponentModel.ISupportInitialize)(this.dgvItems)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsNewProductRates)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtNewRate; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.ComboBox cmbItem; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.DataGridView dgvItems; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.BindingSource bsNewProductRates; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtOldRate; + private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn productIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn productNameDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn oldRateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn newRateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn timestampDataGridViewTextBoxColumn; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductNewRates.cs b/Tanshu.Accounts.PointOfSale/ProductNewRates.cs new file mode 100644 index 0000000..8c02238 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductNewRates.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Accounts.Proxy; +using Tanshu.Common; +using Accounts.BusinessObjects; + +namespace Accounts.PointOfSale +{ + public partial class ProductNewRates : Form + { + public ProductNewRates() + { + InitializeComponent(); + } + + private void ProductNewRates_Load(object sender, EventArgs e) + { + UserBO user = Accounts.Security.CurrentUser.user; + cmbItem.DataSource = Accounts.Proxy.ProductProxy.GetProducts("", 0, 0, user.CompanyID, true, false); + cmbItem.DisplayMember = "Name"; + cmbItem.ValueMember = "ProductID"; + } + + private void ProductNewRates_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.F7) + { + using (SelectProduct selectProduct = new SelectProduct(Accounts.Proxy.ProductProxy.GetPurchaseProductList(), true)) + { + selectProduct.ShowDialog(); + if (selectProduct.SelectedItem != null) + { + cmbItem.SelectedValue = selectProduct.SelectedItem.productID; + txtNewRate.Tag = selectProduct.SelectedItem.Price.ToString(); + btnSave.Focus(); + } + } + } + } + + private void cmbItem_SelectedIndexChanged(object sender, EventArgs e) + { + + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/ProductNewRates.resx b/Tanshu.Accounts.PointOfSale/ProductNewRates.resx new file mode 100644 index 0000000..df3b277 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductNewRates.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductTypes.Designer.cs b/Tanshu.Accounts.PointOfSale/ProductTypes.Designer.cs new file mode 100644 index 0000000..55c75c4 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductTypes.Designer.cs @@ -0,0 +1,255 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class ProductTypes + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.chkMaintainStock = new System.Windows.Forms.CheckBox(); + this.chkInUse = new System.Windows.Forms.CheckBox(); + this.btnAdd = new System.Windows.Forms.Button(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnNavFirst = new System.Windows.Forms.Button(); + this.btnNavPrev = new System.Windows.Forms.Button(); + this.lblNavLocation = new System.Windows.Forms.Label(); + this.btnNavNext = new System.Windows.Forms.Button(); + this.btnLast = new System.Windows.Forms.Button(); + this.txtName = new System.Windows.Forms.TextBox(); + this.btnUpdate = new System.Windows.Forms.Button(); + this.btnExit = new System.Windows.Forms.Button(); + this.txtUniqueID = new System.Windows.Forms.TextBox(); + this.Label2 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.txtTaxRate = new System.Windows.Forms.TextBox(); + this.Label5 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // chkMaintainStock + // + this.chkMaintainStock.AutoSize = true; + this.chkMaintainStock.Location = new System.Drawing.Point(259, 85); + this.chkMaintainStock.Name = "chkMaintainStock"; + this.chkMaintainStock.Size = new System.Drawing.Size(89, 17); + this.chkMaintainStock.TabIndex = 71; + this.chkMaintainStock.Text = "For Purchase"; + this.chkMaintainStock.UseVisualStyleBackColor = true; + // + // chkInUse + // + this.chkInUse.AutoSize = true; + this.chkInUse.Location = new System.Drawing.Point(178, 86); + this.chkInUse.Name = "chkInUse"; + this.chkInUse.Size = new System.Drawing.Size(65, 17); + this.chkInUse.TabIndex = 70; + this.chkInUse.Text = "For Sale"; + this.chkInUse.UseVisualStyleBackColor = true; + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(35, 117); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 68; + this.btnAdd.Text = "&Add"; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(115, 117); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(75, 23); + this.btnDelete.TabIndex = 69; + this.btnDelete.Text = "&Delete"; + // + // btnNavFirst + // + this.btnNavFirst.Location = new System.Drawing.Point(67, 147); + this.btnNavFirst.Name = "btnNavFirst"; + this.btnNavFirst.Size = new System.Drawing.Size(40, 23); + this.btnNavFirst.TabIndex = 63; + this.btnNavFirst.Text = "<<"; + // + // btnNavPrev + // + this.btnNavPrev.Location = new System.Drawing.Point(107, 147); + this.btnNavPrev.Name = "btnNavPrev"; + this.btnNavPrev.Size = new System.Drawing.Size(35, 23); + this.btnNavPrev.TabIndex = 64; + this.btnNavPrev.Text = "<"; + // + // lblNavLocation + // + this.lblNavLocation.BackColor = System.Drawing.Color.White; + this.lblNavLocation.Location = new System.Drawing.Point(139, 147); + this.lblNavLocation.Name = "lblNavLocation"; + this.lblNavLocation.Size = new System.Drawing.Size(95, 23); + this.lblNavLocation.TabIndex = 65; + this.lblNavLocation.Text = "No Records"; + this.lblNavLocation.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // btnNavNext + // + this.btnNavNext.Location = new System.Drawing.Point(235, 147); + this.btnNavNext.Name = "btnNavNext"; + this.btnNavNext.Size = new System.Drawing.Size(35, 23); + this.btnNavNext.TabIndex = 66; + this.btnNavNext.Text = ">"; + // + // btnLast + // + this.btnLast.Location = new System.Drawing.Point(275, 147); + this.btnLast.Name = "btnLast"; + this.btnLast.Size = new System.Drawing.Size(40, 23); + this.btnLast.TabIndex = 67; + this.btnLast.Text = ">>"; + // + // txtName + // + this.txtName.AccessibleName = ""; + this.txtName.Location = new System.Drawing.Point(94, 48); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(254, 20); + this.txtName.TabIndex = 57; + // + // btnUpdate + // + this.btnUpdate.AccessibleName = "Done"; + this.btnUpdate.Location = new System.Drawing.Point(195, 117); + this.btnUpdate.Name = "btnUpdate"; + this.btnUpdate.Size = new System.Drawing.Size(72, 24); + this.btnUpdate.TabIndex = 62; + this.btnUpdate.Text = "&Update"; + // + // btnExit + // + this.btnExit.AccessibleName = "Done"; + this.btnExit.Location = new System.Drawing.Point(273, 117); + this.btnExit.Name = "btnExit"; + this.btnExit.Size = new System.Drawing.Size(72, 24); + this.btnExit.TabIndex = 61; + this.btnExit.Text = "E&xit"; + // + // txtUniqueID + // + this.txtUniqueID.AccessibleName = "Unique ID"; + this.txtUniqueID.Enabled = false; + this.txtUniqueID.Location = new System.Drawing.Point(94, 13); + this.txtUniqueID.Name = "txtUniqueID"; + this.txtUniqueID.Size = new System.Drawing.Size(254, 20); + this.txtUniqueID.TabIndex = 60; + this.txtUniqueID.Text = "UniqueID"; + this.txtUniqueID.WordWrap = false; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(53, 48); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(35, 13); + this.Label2.TabIndex = 58; + this.Label2.Text = "Name"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(33, 13); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(55, 13); + this.Label1.TabIndex = 59; + this.Label1.Text = "Unique ID"; + // + // txtTaxRate + // + this.txtTaxRate.AccessibleName = "Phone 1"; + this.txtTaxRate.Location = new System.Drawing.Point(94, 83); + this.txtTaxRate.Name = "txtTaxRate"; + this.txtTaxRate.Size = new System.Drawing.Size(65, 20); + this.txtTaxRate.TabIndex = 72; + this.txtTaxRate.Text = "0"; + this.txtTaxRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // Label5 + // + this.Label5.AutoSize = true; + this.Label5.Location = new System.Drawing.Point(15, 83); + this.Label5.Name = "Label5"; + this.Label5.Size = new System.Drawing.Size(73, 13); + this.Label5.TabIndex = 73; + this.Label5.Text = "Discount Limit"; + // + // ProductTypes + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(373, 180); + this.Controls.Add(this.txtTaxRate); + this.Controls.Add(this.Label5); + this.Controls.Add(this.chkMaintainStock); + this.Controls.Add(this.chkInUse); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.btnNavFirst); + this.Controls.Add(this.btnNavPrev); + this.Controls.Add(this.lblNavLocation); + this.Controls.Add(this.btnNavNext); + this.Controls.Add(this.btnLast); + this.Controls.Add(this.txtName); + this.Controls.Add(this.btnUpdate); + this.Controls.Add(this.btnExit); + this.Controls.Add(this.txtUniqueID); + this.Controls.Add(this.Label2); + this.Controls.Add(this.Label1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProductTypes"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Product Types"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.CheckBox chkMaintainStock; + internal System.Windows.Forms.CheckBox chkInUse; + internal System.Windows.Forms.Button btnAdd; + internal System.Windows.Forms.Button btnDelete; + internal System.Windows.Forms.Button btnNavFirst; + internal System.Windows.Forms.Button btnNavPrev; + internal System.Windows.Forms.Label lblNavLocation; + internal System.Windows.Forms.Button btnNavNext; + internal System.Windows.Forms.Button btnLast; + internal System.Windows.Forms.TextBox txtName; + internal System.Windows.Forms.Button btnUpdate; + internal System.Windows.Forms.Button btnExit; + internal System.Windows.Forms.TextBox txtUniqueID; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.TextBox txtTaxRate; + internal System.Windows.Forms.Label Label5; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductTypes.cs b/Tanshu.Accounts.PointOfSale/ProductTypes.cs new file mode 100644 index 0000000..2b52561 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductTypes.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class ProductTypes : Form + { + public ProductTypes() + { + InitializeComponent(); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/ProductTypes.resx b/Tanshu.Accounts.PointOfSale/ProductTypes.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductTypes.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductsForm.Designer.cs b/Tanshu.Accounts.PointOfSale/ProductsForm.Designer.cs new file mode 100644 index 0000000..23c346d --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductsForm.Designer.cs @@ -0,0 +1,578 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class ProductsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.Label4 = new System.Windows.Forms.Label(); + this.txtSalePrice = new System.Windows.Forms.TextBox(); + this.bsProducts = new System.Windows.Forms.BindingSource(this.components); + this.GroupBox1 = new System.Windows.Forms.GroupBox(); + this.btnAddCategory = new System.Windows.Forms.Button(); + this.cmbProductTypes = new System.Windows.Forms.ComboBox(); + this.bsTypes = new System.Windows.Forms.BindingSource(this.components); + this.cmbUnits = new System.Windows.Forms.ComboBox(); + this.bsUnits = new System.Windows.Forms.BindingSource(this.components); + this.Label7 = new System.Windows.Forms.Label(); + this.Label3 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.Label2 = new System.Windows.Forms.Label(); + this.btnNavFirst = new System.Windows.Forms.Button(); + this.btnNavPrev = new System.Windows.Forms.Button(); + this.lblNavLocation = new System.Windows.Forms.Label(); + this.btnNavNext = new System.Windows.Forms.Button(); + this.btnLast = new System.Windows.Forms.Button(); + this.txtUniqueID = new System.Windows.Forms.TextBox(); + this.Label1 = new System.Windows.Forms.Label(); + this.btnAdd = new System.Windows.Forms.Button(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnUpdate = new System.Windows.Forms.Button(); + this.btnExit = new System.Windows.Forms.Button(); + this.txtMinimumLevel = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.txtMaximumLevel = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.chkDiscontinued = new System.Windows.Forms.CheckBox(); + this.cmbSalesLedger = new System.Windows.Forms.ComboBox(); + this.bsSalesLedgers = new System.Windows.Forms.BindingSource(this.components); + this.label5 = new System.Windows.Forms.Label(); + this.cmbSalesTax = new System.Windows.Forms.ComboBox(); + this.bsSalesTax = new System.Windows.Forms.BindingSource(this.components); + this.label10 = new System.Windows.Forms.Label(); + this.cmbPurchaseTax = new System.Windows.Forms.ComboBox(); + this.bsPurchaseTax = new System.Windows.Forms.BindingSource(this.components); + this.label11 = new System.Windows.Forms.Label(); + this.cmbPurchaseLedger = new System.Windows.Forms.ComboBox(); + this.bsPurchaseLedgers = new System.Windows.Forms.BindingSource(this.components); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.txtPurchasePrice = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.bsProducts)).BeginInit(); + this.GroupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsTypes)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsUnits)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsSalesLedgers)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsSalesTax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPurchaseTax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPurchaseLedgers)).BeginInit(); + this.SuspendLayout(); + // + // Label4 + // + this.Label4.AutoSize = true; + this.Label4.Location = new System.Drawing.Point(13, 148); + this.Label4.Name = "Label4"; + this.Label4.Size = new System.Drawing.Size(60, 13); + this.Label4.TabIndex = 59; + this.Label4.Text = "Sales Price"; + // + // txtSalePrice + // + this.txtSalePrice.AccessibleName = "Phone 1"; + this.txtSalePrice.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "SalePrice", true)); + this.txtSalePrice.Location = new System.Drawing.Point(13, 164); + this.txtSalePrice.Name = "txtSalePrice"; + this.txtSalePrice.Size = new System.Drawing.Size(74, 20); + this.txtSalePrice.TabIndex = 53; + this.txtSalePrice.Text = "0"; + // + // bsProducts + // + this.bsProducts.DataSource = typeof(Tanshu.Accounts.Contracts.ProductBO); + this.bsProducts.AddingNew += new System.ComponentModel.AddingNewEventHandler(this.bsProducts_AddingNew); + this.bsProducts.PositionChanged += new System.EventHandler(this.bsProducts_PositionChanged); + // + // GroupBox1 + // + this.GroupBox1.Controls.Add(this.btnAddCategory); + this.GroupBox1.Controls.Add(this.cmbProductTypes); + this.GroupBox1.Controls.Add(this.cmbUnits); + this.GroupBox1.Controls.Add(this.Label7); + this.GroupBox1.Controls.Add(this.Label3); + this.GroupBox1.Controls.Add(this.txtName); + this.GroupBox1.Controls.Add(this.Label2); + this.GroupBox1.Location = new System.Drawing.Point(12, 37); + this.GroupBox1.Name = "GroupBox1"; + this.GroupBox1.Size = new System.Drawing.Size(312, 102); + this.GroupBox1.TabIndex = 52; + this.GroupBox1.TabStop = false; + // + // btnAddCategory + // + this.btnAddCategory.Location = new System.Drawing.Point(281, 72); + this.btnAddCategory.Name = "btnAddCategory"; + this.btnAddCategory.Size = new System.Drawing.Size(25, 21); + this.btnAddCategory.TabIndex = 37; + this.btnAddCategory.Text = "+"; + this.btnAddCategory.Click += new System.EventHandler(this.btnAddCategory_Click); + // + // cmbProductTypes + // + this.cmbProductTypes.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "ProductTypeID", true)); + this.cmbProductTypes.DataSource = this.bsTypes; + this.cmbProductTypes.DisplayMember = "Name"; + this.cmbProductTypes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbProductTypes.Location = new System.Drawing.Point(94, 72); + this.cmbProductTypes.Name = "cmbProductTypes"; + this.cmbProductTypes.Size = new System.Drawing.Size(181, 21); + this.cmbProductTypes.TabIndex = 35; + this.cmbProductTypes.ValueMember = "ProductTypeID"; + // + // bsTypes + // + this.bsTypes.DataSource = typeof(Tanshu.Accounts.Contracts.ProductTypeBO); + // + // cmbUnits + // + this.cmbUnits.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "Units", true)); + this.cmbUnits.DataSource = this.bsUnits; + this.cmbUnits.DisplayMember = "Description"; + this.cmbUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUnits.Location = new System.Drawing.Point(94, 45); + this.cmbUnits.Name = "cmbUnits"; + this.cmbUnits.Size = new System.Drawing.Size(212, 21); + this.cmbUnits.TabIndex = 34; + this.cmbUnits.ValueMember = "Description"; + // + // bsUnits + // + this.bsUnits.DataSource = typeof(Tanshu.Accounts.Helpers.StringType); + // + // Label7 + // + this.Label7.AutoSize = true; + this.Label7.Location = new System.Drawing.Point(12, 75); + this.Label7.Name = "Label7"; + this.Label7.Size = new System.Drawing.Size(76, 13); + this.Label7.TabIndex = 33; + this.Label7.Text = "Product Types"; + // + // Label3 + // + this.Label3.AutoSize = true; + this.Label3.Location = new System.Drawing.Point(57, 48); + this.Label3.Name = "Label3"; + this.Label3.Size = new System.Drawing.Size(31, 13); + this.Label3.TabIndex = 30; + this.Label3.Text = "Units"; + // + // txtName + // + this.txtName.AccessibleName = ""; + this.txtName.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "Name", true)); + this.txtName.Location = new System.Drawing.Point(94, 19); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(212, 20); + this.txtName.TabIndex = 0; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(53, 22); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(35, 13); + this.Label2.TabIndex = 28; + this.Label2.Text = "Name"; + // + // btnNavFirst + // + this.btnNavFirst.Location = new System.Drawing.Point(40, 334); + this.btnNavFirst.Name = "btnNavFirst"; + this.btnNavFirst.Size = new System.Drawing.Size(40, 23); + this.btnNavFirst.TabIndex = 44; + this.btnNavFirst.Text = "<<"; + this.btnNavFirst.Click += new System.EventHandler(this.btnNavFirst_Click); + // + // btnNavPrev + // + this.btnNavPrev.Location = new System.Drawing.Point(86, 334); + this.btnNavPrev.Name = "btnNavPrev"; + this.btnNavPrev.Size = new System.Drawing.Size(35, 23); + this.btnNavPrev.TabIndex = 45; + this.btnNavPrev.Text = "<"; + this.btnNavPrev.Click += new System.EventHandler(this.btnNavPrev_Click); + // + // lblNavLocation + // + this.lblNavLocation.BackColor = System.Drawing.Color.White; + this.lblNavLocation.Location = new System.Drawing.Point(118, 334); + this.lblNavLocation.Name = "lblNavLocation"; + this.lblNavLocation.Size = new System.Drawing.Size(95, 23); + this.lblNavLocation.TabIndex = 46; + this.lblNavLocation.Text = "No Records"; + this.lblNavLocation.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lblNavLocation.Click += new System.EventHandler(this.lblNavLocation_Click); + // + // btnNavNext + // + this.btnNavNext.Location = new System.Drawing.Point(214, 334); + this.btnNavNext.Name = "btnNavNext"; + this.btnNavNext.Size = new System.Drawing.Size(35, 23); + this.btnNavNext.TabIndex = 47; + this.btnNavNext.Text = ">"; + this.btnNavNext.Click += new System.EventHandler(this.btnNavNext_Click); + // + // btnLast + // + this.btnLast.Location = new System.Drawing.Point(254, 334); + this.btnLast.Name = "btnLast"; + this.btnLast.Size = new System.Drawing.Size(40, 23); + this.btnLast.TabIndex = 48; + this.btnLast.Text = ">>"; + this.btnLast.Click += new System.EventHandler(this.btnLast_Click); + // + // txtUniqueID + // + this.txtUniqueID.AccessibleName = "Unique ID"; + this.txtUniqueID.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "Code", true)); + this.txtUniqueID.DataBindings.Add(new System.Windows.Forms.Binding("Tag", this.bsProducts, "ProductID", true)); + this.txtUniqueID.Enabled = false; + this.txtUniqueID.Location = new System.Drawing.Point(75, 12); + this.txtUniqueID.Name = "txtUniqueID"; + this.txtUniqueID.Size = new System.Drawing.Size(249, 20); + this.txtUniqueID.TabIndex = 37; + this.txtUniqueID.Text = "UniqueID"; + this.txtUniqueID.WordWrap = false; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(37, 15); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(32, 13); + this.Label1.TabIndex = 36; + this.Label1.Text = "Code"; + this.Label1.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(9, 300); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 72; + this.btnAdd.Text = "&Add"; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(91, 300); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(75, 23); + this.btnDelete.TabIndex = 73; + this.btnDelete.Text = "&Delete"; + this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click); + // + // btnUpdate + // + this.btnUpdate.AccessibleName = "Done"; + this.btnUpdate.Location = new System.Drawing.Point(173, 300); + this.btnUpdate.Name = "btnUpdate"; + this.btnUpdate.Size = new System.Drawing.Size(72, 24); + this.btnUpdate.TabIndex = 71; + this.btnUpdate.Text = "&Update"; + this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click); + // + // btnExit + // + this.btnExit.AccessibleName = "Done"; + this.btnExit.Location = new System.Drawing.Point(252, 300); + this.btnExit.Name = "btnExit"; + this.btnExit.Size = new System.Drawing.Size(72, 24); + this.btnExit.TabIndex = 70; + this.btnExit.Text = "E&xit"; + this.btnExit.Click += new System.EventHandler(this.btnExit_Click); + // + // txtMinimumLevel + // + this.txtMinimumLevel.AccessibleName = "Phone 1"; + this.txtMinimumLevel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "MinimumLevel", true)); + this.txtMinimumLevel.Location = new System.Drawing.Point(10, 264); + this.txtMinimumLevel.Name = "txtMinimumLevel"; + this.txtMinimumLevel.Size = new System.Drawing.Size(77, 20); + this.txtMinimumLevel.TabIndex = 75; + this.txtMinimumLevel.Text = "0"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(10, 248); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(77, 13); + this.label6.TabIndex = 74; + this.label6.Text = "Minimum Level"; + // + // txtMaximumLevel + // + this.txtMaximumLevel.AccessibleName = "Phone 1"; + this.txtMaximumLevel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "MaximumLevel", true)); + this.txtMaximumLevel.Location = new System.Drawing.Point(96, 264); + this.txtMaximumLevel.Name = "txtMaximumLevel"; + this.txtMaximumLevel.Size = new System.Drawing.Size(85, 20); + this.txtMaximumLevel.TabIndex = 77; + this.txtMaximumLevel.Text = "0"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(93, 249); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(80, 13); + this.label9.TabIndex = 76; + this.label9.Text = "Maximum Level"; + // + // chkDiscontinued + // + this.chkDiscontinued.AutoSize = true; + this.chkDiscontinued.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.bsProducts, "Discontinued", true)); + this.chkDiscontinued.Location = new System.Drawing.Point(233, 272); + this.chkDiscontinued.Name = "chkDiscontinued"; + this.chkDiscontinued.Size = new System.Drawing.Size(88, 17); + this.chkDiscontinued.TabIndex = 78; + this.chkDiscontinued.Text = "Discontinued"; + this.chkDiscontinued.UseVisualStyleBackColor = true; + // + // cmbSalesLedger + // + this.cmbSalesLedger.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "SaleLedgerID", true)); + this.cmbSalesLedger.DataSource = this.bsSalesLedgers; + this.cmbSalesLedger.DisplayMember = "Name"; + this.cmbSalesLedger.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSalesLedger.Location = new System.Drawing.Point(93, 163); + this.cmbSalesLedger.Name = "cmbSalesLedger"; + this.cmbSalesLedger.Size = new System.Drawing.Size(137, 21); + this.cmbSalesLedger.TabIndex = 80; + this.cmbSalesLedger.ValueMember = "LedgerID"; + // + // bsSalesLedgers + // + this.bsSalesLedgers.DataSource = typeof(Tanshu.Accounts.Contracts.LedgerBO); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(98, 148); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(69, 13); + this.label5.TabIndex = 79; + this.label5.Text = "Sales Ledger"; + // + // cmbSalesTax + // + this.cmbSalesTax.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "SaleTaxID", true)); + this.cmbSalesTax.DataSource = this.bsSalesTax; + this.cmbSalesTax.DisplayMember = "Name"; + this.cmbSalesTax.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSalesTax.Location = new System.Drawing.Point(236, 163); + this.cmbSalesTax.Name = "cmbSalesTax"; + this.cmbSalesTax.Size = new System.Drawing.Size(91, 21); + this.cmbSalesTax.TabIndex = 82; + this.cmbSalesTax.ValueMember = "LedgerID"; + // + // bsSalesTax + // + this.bsSalesTax.DataSource = typeof(Tanshu.Accounts.Contracts.LedgerBO); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(241, 148); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(54, 13); + this.label10.TabIndex = 81; + this.label10.Text = "Sales Tax"; + // + // cmbPurchaseTax + // + this.cmbPurchaseTax.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "PurchaseTaxID", true)); + this.cmbPurchaseTax.DataSource = this.bsPurchaseTax; + this.cmbPurchaseTax.DisplayMember = "Name"; + this.cmbPurchaseTax.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbPurchaseTax.Location = new System.Drawing.Point(233, 214); + this.cmbPurchaseTax.Name = "cmbPurchaseTax"; + this.cmbPurchaseTax.Size = new System.Drawing.Size(91, 21); + this.cmbPurchaseTax.TabIndex = 88; + this.cmbPurchaseTax.ValueMember = "LedgerID"; + // + // bsPurchaseTax + // + this.bsPurchaseTax.DataSource = typeof(Tanshu.Accounts.Contracts.LedgerBO); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(233, 198); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(73, 13); + this.label11.TabIndex = 87; + this.label11.Text = "Purchase Tax"; + // + // cmbPurchaseLedger + // + this.cmbPurchaseLedger.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsProducts, "PurchaseLedgerID", true)); + this.cmbPurchaseLedger.DataSource = this.bsPurchaseLedgers; + this.cmbPurchaseLedger.DisplayMember = "Name"; + this.cmbPurchaseLedger.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbPurchaseLedger.Location = new System.Drawing.Point(90, 214); + this.cmbPurchaseLedger.Name = "cmbPurchaseLedger"; + this.cmbPurchaseLedger.Size = new System.Drawing.Size(137, 21); + this.cmbPurchaseLedger.TabIndex = 86; + this.cmbPurchaseLedger.ValueMember = "LedgerID"; + // + // bsPurchaseLedgers + // + this.bsPurchaseLedgers.DataSource = typeof(Tanshu.Accounts.Contracts.LedgerBO); + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(95, 198); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(88, 13); + this.label12.TabIndex = 85; + this.label12.Text = "Purchase Ledger"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(10, 198); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(79, 13); + this.label13.TabIndex = 84; + this.label13.Text = "Purchase Price"; + // + // txtPurchasePrice + // + this.txtPurchasePrice.AccessibleName = "Phone 1"; + this.txtPurchasePrice.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsProducts, "PurchasePrice", true)); + this.txtPurchasePrice.Location = new System.Drawing.Point(10, 214); + this.txtPurchasePrice.Name = "txtPurchasePrice"; + this.txtPurchasePrice.Size = new System.Drawing.Size(74, 20); + this.txtPurchasePrice.TabIndex = 83; + this.txtPurchasePrice.Text = "0"; + // + // ProductsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(336, 365); + this.Controls.Add(this.cmbPurchaseTax); + this.Controls.Add(this.label11); + this.Controls.Add(this.cmbPurchaseLedger); + this.Controls.Add(this.label12); + this.Controls.Add(this.label13); + this.Controls.Add(this.txtPurchasePrice); + this.Controls.Add(this.cmbSalesTax); + this.Controls.Add(this.Label1); + this.Controls.Add(this.label10); + this.Controls.Add(this.cmbSalesLedger); + this.Controls.Add(this.label5); + this.Controls.Add(this.chkDiscontinued); + this.Controls.Add(this.txtMaximumLevel); + this.Controls.Add(this.label9); + this.Controls.Add(this.txtMinimumLevel); + this.Controls.Add(this.label6); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.btnUpdate); + this.Controls.Add(this.btnExit); + this.Controls.Add(this.Label4); + this.Controls.Add(this.txtSalePrice); + this.Controls.Add(this.GroupBox1); + this.Controls.Add(this.btnNavFirst); + this.Controls.Add(this.btnNavPrev); + this.Controls.Add(this.lblNavLocation); + this.Controls.Add(this.btnNavNext); + this.Controls.Add(this.btnLast); + this.Controls.Add(this.txtUniqueID); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProductsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Products"; + this.Load += new System.EventHandler(this.Products_Load); + ((System.ComponentModel.ISupportInitialize)(this.bsProducts)).EndInit(); + this.GroupBox1.ResumeLayout(false); + this.GroupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsTypes)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsUnits)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsSalesLedgers)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsSalesTax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPurchaseTax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPurchaseLedgers)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Label Label4; + internal System.Windows.Forms.TextBox txtSalePrice; + internal System.Windows.Forms.GroupBox GroupBox1; + internal System.Windows.Forms.Button btnAddCategory; + internal System.Windows.Forms.ComboBox cmbProductTypes; + internal System.Windows.Forms.ComboBox cmbUnits; + internal System.Windows.Forms.Label Label7; + internal System.Windows.Forms.Label Label3; + internal System.Windows.Forms.TextBox txtName; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Button btnNavFirst; + internal System.Windows.Forms.Button btnNavPrev; + internal System.Windows.Forms.Label lblNavLocation; + internal System.Windows.Forms.Button btnNavNext; + internal System.Windows.Forms.Button btnLast; + internal System.Windows.Forms.TextBox txtUniqueID; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.Button btnAdd; + internal System.Windows.Forms.Button btnDelete; + internal System.Windows.Forms.Button btnUpdate; + internal System.Windows.Forms.Button btnExit; + internal System.Windows.Forms.TextBox txtMinimumLevel; + internal System.Windows.Forms.Label label6; + internal System.Windows.Forms.TextBox txtMaximumLevel; + internal System.Windows.Forms.Label label9; + private System.Windows.Forms.CheckBox chkDiscontinued; + internal System.Windows.Forms.ComboBox cmbSalesLedger; + internal System.Windows.Forms.Label label5; + internal System.Windows.Forms.ComboBox cmbSalesTax; + internal System.Windows.Forms.Label label10; + internal System.Windows.Forms.ComboBox cmbPurchaseTax; + internal System.Windows.Forms.Label label11; + internal System.Windows.Forms.ComboBox cmbPurchaseLedger; + internal System.Windows.Forms.Label label12; + internal System.Windows.Forms.Label label13; + internal System.Windows.Forms.TextBox txtPurchasePrice; + private System.Windows.Forms.BindingSource bsProducts; + private System.Windows.Forms.BindingSource bsUnits; + private System.Windows.Forms.BindingSource bsTypes; + private System.Windows.Forms.BindingSource bsSalesLedgers; + private System.Windows.Forms.BindingSource bsSalesTax; + private System.Windows.Forms.BindingSource bsPurchaseLedgers; + private System.Windows.Forms.BindingSource bsPurchaseTax; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductsForm.cs b/Tanshu.Accounts.PointOfSale/ProductsForm.cs new file mode 100644 index 0000000..7a2521e --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductsForm.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class ProductsForm : Form + { + bool createOnly = false; + List productList = new List(); + + #region Form Load + public ProductsForm() + { + InitializeComponent(); + } + + private void Products_Load(object sender, EventArgs e) + { + productList = new ProductBI().GetProducts(); + bsProducts.DataSource = productList; + FillCombos(); + bsProducts.MoveFirst(); + } + + private void FillCombos() + { + bsUnits.DataSource = new StringType[17] {new StringType ( "Cms"), + new StringType ("Meter"), + new StringType ("Quintal"), + new StringType ("Can"), + new StringType ("Gms"), + new StringType ("Rs."), + new StringType ("Piece"), + new StringType ("Petti"), + new StringType ("No.'s"), + new StringType ("Liter"), + new StringType ("Box"), + new StringType ("Tin"), + new StringType ("Dibbi"), + new StringType ("Plate"), + new StringType ("Kg."), + new StringType ("Bottle"), + new StringType ("Pack" )}; + + bsTypes.DataSource = new ProductBI().GetProductTypes(); + bsPurchaseLedgers.DataSource = new LedgerBI().GetLedgersOfType('P'); + bsSalesLedgers.DataSource = new LedgerBI().GetLedgersOfType('X'); + bsSalesTax.DataSource = new LedgerBI().GetLedgersOfType('T'); + bsPurchaseTax.DataSource = new LedgerBI().GetLedgersOfType('T'); + } + #endregion + + #region Buttons + private void btnAdd_Click(object sender, EventArgs e) + { + if (btnAdd.Text == "&Add") + { + bsProducts.AddNew(); + LockControls(true); + this.lblNavLocation.Text = "Add New"; + txtName.Select(); + } + else + { + if (!ValidateValues()) + { + MessageBox.Show("Missing Information: Please check the form."); + bsProducts.CancelEdit(); + } + else + { + bsProducts.EndEdit(); + Save(true); + if (createOnly) + btnExit_Click(sender, e); + else + { + productList = new ProductBI().GetProducts(); + bsProducts.DataSource = productList; + LockControls(false); + } + } + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (btnDelete.Text == "&Delete") + { + if (productList.Count() > 0) + { + if (MessageBox.Show("Are you sure?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) + { + if (new ProductBI().Delete(productList.Single(p => p.Code == Convert.ToInt32(txtUniqueID.Text)).ProductID)) + { + productList = new ProductBI().GetProducts(); + btnNavFirst_Click(sender, e); + } + } + } + } + + else + { + LockControls(false); + bsProducts.CancelEdit(); + } + + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Are you sure?", "Update", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) + { + Save(false); + bsProducts.ResetItem(bsProducts.Position); + } + } + #endregion + + #region Add / Edit / Delete + private bool ValidateValues() + { + bool returnType; + returnType = (bool)(txtName.Text.Trim().Length > 0 ? true : false); + returnType = (cmbSalesLedger.SelectedValue == null ? false : true); + returnType = (cmbSalesTax.SelectedValue == null ? false : true); + returnType = (cmbPurchaseLedger.SelectedValue == null ? false : true); + returnType = (cmbPurchaseTax.SelectedValue == null ? false : true); + return returnType; + } + + private bool Save(bool addNew) + { + #region Setup Products + UserBO user = CurrentUser.user; + ProductBO product = new ProductBO(); + if (!addNew) + product = new ProductBI().GetProduct(productList.ElementAt(bsProducts.Position).ProductID); + product.Name = txtName.Text; + product.MinimumLevel = Convert.ToDecimal(txtMinimumLevel.Text); + product.MaximumLevel = Convert.ToDecimal(txtMaximumLevel.Text); + product.Units = cmbUnits.Text; + product.ProductTypeID = new Guid(cmbProductTypes.SelectedValue.ToString()); + product.SalePrice = Convert.ToDecimal(txtSalePrice.Text); + if (cmbPurchaseLedger.SelectedValue != null) + product.PurchaseLedgerID = new Guid(cmbPurchaseLedger.SelectedValue.ToString()); + product.SaleLedgerID = new Guid(cmbSalesLedger.SelectedValue.ToString()); + if (cmbPurchaseTax.SelectedValue != null) + product.PurchaseTaxID = new Guid(cmbPurchaseTax.SelectedValue.ToString()); + product.Discontinued = chkDiscontinued.Checked; + product.PurchasePrice = Convert.ToDecimal(txtPurchasePrice.Text); + product.SaleTaxID = new Guid(cmbSalesTax.SelectedValue.ToString()); + if (addNew) + new ProductBI().Insert(product); + else + new ProductBI().Update(product); + + return true; + #endregion + } + #endregion + + private void btnExit_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void LockControls(bool enable) + { + if (enable) + { + btnAdd.Text = "&Save"; + btnDelete.Text = "&Cancel"; + } + else + { + btnAdd.Text = "&Add"; + btnDelete.Text = "&Delete"; + } + btnExit.Enabled = !enable; + btnLast.Enabled = !enable; + btnNavPrev.Enabled = !enable; + btnNavNext.Enabled = !enable; + btnUpdate.Enabled = !enable; + btnNavFirst.Enabled = !enable; + } + + private void btnAddCategory_Click(object sender, EventArgs e) + { + ProductTypes frm = new ProductTypes(); + frm.ShowDialog(); + frm.Dispose(); + FillCombos(); + cmbProductTypes.SelectedIndex = 0; + } + + + #region Move Buttons + private void btnNavFirst_Click(object sender, EventArgs e) + { + this.bsProducts.MoveFirst(); + } + private void btnNavPrev_Click(object sender, EventArgs e) + { + this.bsProducts.MovePrevious(); + } + private void btnNavNext_Click(object sender, EventArgs e) + { + this.bsProducts.MoveNext(); + } + private void btnLast_Click(object sender, EventArgs e) + { + this.bsProducts.MoveLast(); + } + private void lblNavLocation_Click(object sender, EventArgs e) + { + using (SelectProduct selectProduct = new SelectProduct(new ProductBI().GetFilteredProducts, true)) + { + selectProduct.ShowDialog(); + if (selectProduct.SelectedItem != null) + { + bsProducts.Position = GetPosition(productList, selectProduct.SelectedItem.ProductID); + } + } + } + #endregion + #region Binding Source Events + private void bsProducts_AddingNew(object sender, AddingNewEventArgs e) + { + e.NewObject = new ProductBO(); + } + + private void bsProducts_PositionChanged(object sender, EventArgs e) + { + this.lblNavLocation.Text = string.Format("{0} of {1}", bsProducts.Position + 1, bsProducts.Count); + } + #endregion + private int GetPosition(List list, Guid id) + { + for (int i = 0; i < list.Count; i++) + { + if (list[i].ProductID == id) + return i; + } + return 0; + + } + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/ProductsForm.resx b/Tanshu.Accounts.PointOfSale/ProductsForm.resx new file mode 100644 index 0000000..5753dce --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/ProductsForm.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 251, 17 + + + 123, 17 + + + 17, 54 + + + 145, 54 + + + 438, 54 + + + 273, 54 + + + 102 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Program.cs b/Tanshu.Accounts.PointOfSale/Program.cs new file mode 100644 index 0000000..4a1f5f5 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Program.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Threading; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + static class Program + { + private static readonly Tanshu.Logging.SqlLogger log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + string userName; + bool isAuthenticated; + using (LoginForm login = new LoginForm()) + { + login.ShowDialog(); + isAuthenticated = login.UserName(out userName); + } + if (isAuthenticated) + { + SetThreadPrincipal(userName); + + Application.Run(new MainForm()); + log.Warn(string.Format("User Logout: {0}", CurrentUser.user.Name)); + } + else + { + log.Warn(string.Format("User Login Failed: '{0}'", userName)); + } + + } + static void SetThreadPrincipal(string userName) + { + log.Warn(string.Format("User Login: '{0}'", userName)); + if (userName.Contains(":")) + userName = userName.Substring(userName.IndexOf(":") + 1); + + AccountsPrincipal principal = AccountsPrincipal.CreateAccountsPrincipal(new Tanshu.Accounts.BI.MembershipBI().GetRolesForUser(userName), + new MembershipBI().GetUserFromName(userName)); + + // bind the generic principal to the thread + Thread.CurrentPrincipal = principal; + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Properties/AssemblyInfo.cs b/Tanshu.Accounts.PointOfSale/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9324e60 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.Accounts.PointOfSale")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.Accounts.PointOfSale")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1c4c4c08-bc34-4a44-8e59-f112a16eb073")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.5.*")] +[assembly: AssemblyFileVersion("1.5.0.0")] diff --git a/Tanshu.Accounts.PointOfSale/Resources/burger.ico b/Tanshu.Accounts.PointOfSale/Resources/burger.ico new file mode 100644 index 0000000..2ed507b Binary files /dev/null and b/Tanshu.Accounts.PointOfSale/Resources/burger.ico differ diff --git a/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.cs b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.cs new file mode 100644 index 0000000..1c4ee70 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using System.Data.SqlClient; +using System.Configuration; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class AdjustAdvanceForm : Form + { + bool loading = true; + public AdjustAdvanceForm() + { + InitializeComponent(); + } + private void AdjustAdvancesForm_Load(object sender, EventArgs e) + { + dtpFrom.Format = DateTimePickerFormat.Custom; + dtpFrom.CustomFormat = "dd-MMM-yyyy"; + dtpFrom.Value = DateTime.Now; + dtpTo.Format = DateTimePickerFormat.Custom; + dtpTo.CustomFormat = "dd-MMM-yyyy"; + dtpTo.Value = DateTime.Now; + loading = false; + FillDataGrid(); + } + private void FillDataGrid() + { + dgExpenses.DataSource = new AdvanceBI().GetAdvances(dtpFrom.Value, dtpTo.Value, false); + } + private void dtpFrom_ValueChanged(object sender, EventArgs e) + { + if (!loading) + FillDataGrid(); + } + + private void btnSelect_Click(object sender, EventArgs e) + { + try + { + AdvanceDisplayBO item = (AdvanceDisplayBO)dgExpenses.SelectedRows[0].DataBoundItem; + txtCashier.Text = item.Cashier; + txtNarration.Tag = item.AdvanceID; + txtNarration.Text = item.Narration; + txtAmount.Text = item.Amount.ToString(); + } + catch { } + } + + private void btnAdjust_Click(object sender, EventArgs e) + { + new AdvanceBI().Adjust((Guid)txtNarration.Tag, CurrentUser.user.UserID); + FillDataGrid(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.designer.cs b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.designer.cs new file mode 100644 index 0000000..12a4082 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.designer.cs @@ -0,0 +1,270 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class AdjustAdvanceForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnAdjust = new System.Windows.Forms.Button(); + this.btnSelect = new System.Windows.Forms.Button(); + this.Label7 = new System.Windows.Forms.Label(); + this.txtNarration = new System.Windows.Forms.TextBox(); + this.txtAmount = new System.Windows.Forms.TextBox(); + this.lblAmount = new System.Windows.Forms.Label(); + this.txtCashier = new System.Windows.Forms.TextBox(); + this.Label5 = new System.Windows.Forms.Label(); + this.txtVoid = new System.Windows.Forms.TextBox(); + this.txtAmt = new System.Windows.Forms.TextBox(); + this.Label4 = new System.Windows.Forms.Label(); + this.Label3 = new System.Windows.Forms.Label(); + this.Label2 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dgExpenses = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dgExpenses)).BeginInit(); + this.SuspendLayout(); + // + // btnAdjust + // + this.btnAdjust.Location = new System.Drawing.Point(142, 113); + this.btnAdjust.Name = "btnAdjust"; + this.btnAdjust.Size = new System.Drawing.Size(75, 21); + this.btnAdjust.TabIndex = 111; + this.btnAdjust.Text = "&Adjust"; + this.btnAdjust.Click += new System.EventHandler(this.btnAdjust_Click); + // + // btnSelect + // + this.btnSelect.Location = new System.Drawing.Point(61, 113); + this.btnSelect.Name = "btnSelect"; + this.btnSelect.Size = new System.Drawing.Size(75, 21); + this.btnSelect.TabIndex = 110; + this.btnSelect.Text = "&Select"; + this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click); + // + // Label7 + // + this.Label7.AutoSize = true; + this.Label7.Location = new System.Drawing.Point(6, 92); + this.Label7.Name = "Label7"; + this.Label7.Size = new System.Drawing.Size(50, 13); + this.Label7.TabIndex = 109; + this.Label7.Text = "Narration"; + // + // txtNarration + // + this.txtNarration.Location = new System.Drawing.Point(61, 90); + this.txtNarration.Name = "txtNarration"; + this.txtNarration.ReadOnly = true; + this.txtNarration.Size = new System.Drawing.Size(330, 20); + this.txtNarration.TabIndex = 108; + // + // txtAmount + // + this.txtAmount.Location = new System.Drawing.Point(61, 68); + this.txtAmount.Name = "txtAmount"; + this.txtAmount.ReadOnly = true; + this.txtAmount.Size = new System.Drawing.Size(100, 20); + this.txtAmount.TabIndex = 107; + // + // lblAmount + // + this.lblAmount.AutoSize = true; + this.lblAmount.Location = new System.Drawing.Point(11, 71); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.Size = new System.Drawing.Size(43, 13); + this.lblAmount.TabIndex = 106; + this.lblAmount.Text = "Amount"; + // + // txtCashier + // + this.txtCashier.Location = new System.Drawing.Point(61, 47); + this.txtCashier.Name = "txtCashier"; + this.txtCashier.ReadOnly = true; + this.txtCashier.Size = new System.Drawing.Size(330, 20); + this.txtCashier.TabIndex = 105; + // + // Label5 + // + this.Label5.AutoSize = true; + this.Label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label5.Location = new System.Drawing.Point(56, 501); + this.Label5.Name = "Label5"; + this.Label5.Size = new System.Drawing.Size(40, 16); + this.Label5.TabIndex = 104; + this.Label5.Text = "Void"; + // + // txtVoid + // + this.txtVoid.BackColor = System.Drawing.Color.Black; + this.txtVoid.ForeColor = System.Drawing.Color.Lime; + this.txtVoid.Location = new System.Drawing.Point(112, 499); + this.txtVoid.Name = "txtVoid"; + this.txtVoid.ReadOnly = true; + this.txtVoid.Size = new System.Drawing.Size(100, 20); + this.txtVoid.TabIndex = 103; + this.txtVoid.Text = "0.00"; + this.txtVoid.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // txtAmt + // + this.txtAmt.BackColor = System.Drawing.Color.Black; + this.txtAmt.ForeColor = System.Drawing.Color.Lime; + this.txtAmt.Location = new System.Drawing.Point(281, 500); + this.txtAmt.Name = "txtAmt"; + this.txtAmt.ReadOnly = true; + this.txtAmt.Size = new System.Drawing.Size(110, 20); + this.txtAmt.TabIndex = 102; + this.txtAmt.Text = "0.00"; + this.txtAmt.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // Label4 + // + this.Label4.AutoSize = true; + this.Label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label4.Location = new System.Drawing.Point(232, 502); + this.Label4.Name = "Label4"; + this.Label4.Size = new System.Drawing.Size(44, 16); + this.Label4.TabIndex = 101; + this.Label4.Text = "Total"; + // + // Label3 + // + this.Label3.AutoSize = true; + this.Label3.Location = new System.Drawing.Point(13, 52); + this.Label3.Name = "Label3"; + this.Label3.Size = new System.Drawing.Size(42, 13); + this.Label3.TabIndex = 100; + this.Label3.Text = "Cashier"; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(171, 18); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(20, 13); + this.Label2.TabIndex = 97; + this.Label2.Text = "To"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(21, 18); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(30, 13); + this.Label1.TabIndex = 95; + this.Label1.Text = "From"; + // + // dtpTo + // + this.dtpTo.Location = new System.Drawing.Point(191, 18); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(90, 20); + this.dtpTo.TabIndex = 98; + // + // dtpFrom + // + this.dtpFrom.Location = new System.Drawing.Point(61, 18); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(90, 20); + this.dtpFrom.TabIndex = 96; + this.dtpFrom.ValueChanged += new System.EventHandler(this.dtpFrom_ValueChanged); + // + // dgExpenses + // + this.dgExpenses.AllowUserToAddRows = false; + this.dgExpenses.AllowUserToDeleteRows = false; + this.dgExpenses.AllowUserToResizeRows = false; + this.dgExpenses.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgExpenses.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgExpenses.Location = new System.Drawing.Point(13, 140); + this.dgExpenses.Name = "dgExpenses"; + this.dgExpenses.ReadOnly = true; + this.dgExpenses.RowHeadersVisible = false; + this.dgExpenses.RowTemplate.Height = 19; + this.dgExpenses.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgExpenses.Size = new System.Drawing.Size(378, 356); + this.dgExpenses.TabIndex = 112; + // + // AdjustAdvanceForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(402, 536); + this.Controls.Add(this.dgExpenses); + this.Controls.Add(this.btnAdjust); + this.Controls.Add(this.btnSelect); + this.Controls.Add(this.Label7); + this.Controls.Add(this.txtNarration); + this.Controls.Add(this.txtAmount); + this.Controls.Add(this.lblAmount); + this.Controls.Add(this.txtCashier); + this.Controls.Add(this.Label5); + this.Controls.Add(this.txtVoid); + this.Controls.Add(this.txtAmt); + this.Controls.Add(this.Label4); + this.Controls.Add(this.Label3); + this.Controls.Add(this.Label2); + this.Controls.Add(this.Label1); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AdjustAdvanceForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Payment Details"; + this.Load += new System.EventHandler(this.AdjustAdvancesForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgExpenses)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Button btnAdjust; + internal System.Windows.Forms.Button btnSelect; + internal System.Windows.Forms.Label Label7; + internal System.Windows.Forms.TextBox txtNarration; + internal System.Windows.Forms.TextBox txtAmount; + internal System.Windows.Forms.Label lblAmount; + internal System.Windows.Forms.TextBox txtCashier; + internal System.Windows.Forms.Label Label5; + internal System.Windows.Forms.TextBox txtVoid; + internal System.Windows.Forms.TextBox txtAmt; + internal System.Windows.Forms.Label Label4; + internal System.Windows.Forms.Label Label3; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.DateTimePicker dtpTo; + internal System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DataGridView dgExpenses; + + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.resx b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/AdjustAdvanceForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/BillHelperFunctions.cs b/Tanshu.Accounts.PointOfSale/Sales/BillHelperFunctions.cs new file mode 100644 index 0000000..6fcf67c --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/BillHelperFunctions.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Tanshu.Common; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using System.Windows.Forms; +using System.Threading; + +namespace Tanshu.Accounts.PointOfSale +{ + public static class BillHelperFunctions + { + #region Discount + public static void SetDiscount(Guid productID, decimal discount, CustomerBO customer, Dictionary bill) + { + #region InputBox + if (discount == -1) + { + InputBoxResult result = InputBox.Show("Discount Rate", "Discount", "0", InputBox_Validating); + if (result.OK) + { + if (!decimal.TryParse(result.Text, out discount)) + return; + discount /= 100; + } + } + if (discount == -1) + return; + #endregion + + #region Max Discount + decimal maxDiscount = new SaleVoucherBI().GetProductDiscountLimit(productID); + if ((discount > maxDiscount) && customer.CustomerID != new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")) + { + MessageBox.Show(string.Format("Maximum discount for this product is {0:P}", maxDiscount), "Excessive Discount", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else if ((discount > maxDiscount) && customer.CustomerID == new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")) + { + MessageBox.Show(string.Format("Maximum discount for this product is {0:P} Discount Disallowed", maxDiscount), "Excessive Discount", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + #endregion + + if (bill.ContainsKey(new BillItemKey(productID, true))) + SetDiscount(bill[new BillItemKey(productID, true)], discount); + if (bill.ContainsKey(new BillItemKey(productID, false))) + SetDiscount(bill[new BillItemKey(productID, false)], discount); + return; + } + private static void SetDiscount(SalesBillItemBO product, decimal discount) + { + product.Discount = discount; + } + #endregion + #region Add Product + public static SalesBillItemBO AddProductToGrid(Guid productID, BindingSource bindingSource, Dictionary bill) + { + SalesBillItemBO product; + if ((!bill.ContainsKey(new BillItemKey(productID, true))) && (!bill.ContainsKey(new BillItemKey(productID, false)))) + { + //No new or old + product = AddNewProduct(productID, bindingSource, bill); + } + else if (bill.ContainsKey(new BillItemKey(productID, true))) + { + //Has new or both + BillItemKey key = new BillItemKey(productID, true); + bindingSource.CurrencyManager.Position = ProductPosition(key, bill); + product = bill[key]; + SetQuantity(product, 1, false); + } + else + { + //Has only old + product = bill[new BillItemKey(productID, false)]; + if (product.Additional <= -1) + SetQuantity(product, 1, false); + else if (product.Additional < 0) + { + decimal quantity = 1 + product.Additional; + SetQuantity(product, 1, false); + + decimal rate = bill[new BillItemKey(productID, false)].Discount; + decimal discount = bill[new BillItemKey(productID, false)].Price; + product = AddNewProduct(productID, bindingSource, bill); + SetDiscount(product, discount); + SetRate(productID, rate, bill); + + SetQuantity(product, quantity, true); + + } + else + { + decimal discount = bill[new BillItemKey(productID, false)].Discount; + decimal rate = bill[new BillItemKey(productID, false)].Price; + product = AddNewProduct(productID, bindingSource, bill); + SetDiscount(product, discount); + SetRate(productID, rate, bill); + } + } + return product; + } + private static SalesBillItemBO AddNewProduct(Guid productID, BindingSource bindingSource, Dictionary bill) + { + BillItemKey key = new BillItemKey(productID, true); + SalesBillItemBO product = new SaleVoucherBI().GetDefaultSaleBillItem(productID); + product.Quantity = 1; + bill.Add(key, product); + bindingSource.DataSource = bill.Values; + bindingSource.CurrencyManager.Position = bindingSource.CurrencyManager.Count + 1; + return product; + + } + private static int ProductPosition(BillItemKey key, Dictionary bill) + { + for (int i = 0; i < bill.Count; i++) + { + if (bill.Keys.ElementAt(i) == key) + return i; + } + return 0; + } + + #endregion + #region Quantity + public static void SetQuantity(SalesBillItemBO product, decimal quantity, bool absolute, bool prompt, BindingSource bindingSource, Dictionary bill) + { + #region Prompt + if (prompt) + { + InputBoxResult result = InputBox.Show("Enter Quantity", "Quantity", (product.Quantity + 1).ToString(), InputBox_Validating); + if (result.OK) + { + if (!decimal.TryParse(result.Text, out quantity)) + return; + absolute = true; + } + } + if (quantity == 0) + return; + #endregion + + CheckQuantity(product, quantity, absolute); + + if (product.Printed == 0) + { + SetQuantity(product, quantity, absolute); + } + else if (bill.ContainsKey(new BillItemKey(product.productID, true))) + { + SalesBillItemBO otherProduct = bill[new BillItemKey(product.productID, true)]; + if (absolute) + SetQuantity(otherProduct, quantity - product.Printed, absolute); + else + SetQuantity(otherProduct, quantity, absolute); + } + else + { + if (product.Additional < 0) + { + if (!absolute) + quantity += product.Additional; + product.Quantity = product.Printed; + } + if (absolute) + quantity -= product.Quantity; + if (quantity > 0) + { + SalesBillItemBO otherProduct = AddProductToGrid(product.productID, bindingSource, bill); + SetQuantity(otherProduct, quantity, true); + } + else if ((quantity < 0) && (Thread.CurrentPrincipal.IsInRole("Sales/EditPrintedProduct"))) + { + SetQuantity(product, quantity, false); + } + } + + } + private static bool CheckQuantity(SalesBillItemBO product, decimal quantity, bool absolute) + { + if (!absolute) + quantity = product.Quantity + quantity; + if (quantity < 0) + return false; + else if ((quantity < product.Printed) && (!Thread.CurrentPrincipal.IsInRole("Sales/EditPrintedProduct"))) + return false; + else + return true; + } + private static void SetQuantity(SalesBillItemBO product, decimal quantity, bool absolute) + { + if (!absolute) + { + quantity = product.Quantity + quantity; + } + if (quantity <= 0) + return; + product.Quantity = quantity; + } + #endregion + #region Amount + public static void SetAmount(SalesBillItemBO product, decimal amount, BindingSource bindingSource, Dictionary bill) + { + if (amount == -1) + { + InputBoxResult result = InputBox.Show("Enter Amount", "Amount", (product.Value).ToString(), InputBox_Validating); + if (result.OK) + { + amount = Convert.ToDecimal(result.Text); + } + } + if (amount == -1) + return; + else + { + SetQuantity(product, amount / (product.Price * (1 + product.Tax) * (1 - product.Discount)), true, false, bindingSource, bill); + } + } + #endregion + #region Rate + public static void SetRate(Guid productID, decimal rate, Dictionary bill) + { + if (bill.ContainsKey(new BillItemKey(productID, true))) + bill[new BillItemKey(productID, true)].Price = rate; + if (bill.ContainsKey(new BillItemKey(productID, false))) + bill[new BillItemKey(productID, false)].Price = rate; + } + #endregion + private static void InputBox_Validating(object sender, InputBoxValidatingArgs e) + { + } + + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.Designer.cs new file mode 100644 index 0000000..211b40d --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.Designer.cs @@ -0,0 +1,481 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class Cashier_Checkout_Form + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label18 = new System.Windows.Forms.Label(); + this.txtClosingCash = new System.Windows.Forms.TextBox(); + this.dtpFinish = new System.Windows.Forms.DateTimePicker(); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.btnCalculate = new System.Windows.Forms.Button(); + this.btnPrint = new System.Windows.Forms.Button(); + this.txtStatus = new System.Windows.Forms.TextBox(); + this.txtSales = new System.Windows.Forms.TextBox(); + this.txtDeposited = new System.Windows.Forms.TextBox(); + this.txtPending = new System.Windows.Forms.TextBox(); + this.cmbCashier = new System.Windows.Forms.ComboBox(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.txtPayments = new System.Windows.Forms.TextBox(); + this.txtAdvanceAdjusted = new System.Windows.Forms.TextBox(); + this.txtCCReceipts = new System.Windows.Forms.TextBox(); + this.txtAdditionalVoids = new System.Windows.Forms.TextBox(); + this.txtVoidsInSystem = new System.Windows.Forms.TextBox(); + this.txtDiscounts = new System.Windows.Forms.TextBox(); + this.txtRates = new System.Windows.Forms.TextBox(); + this.txtAdvanceReceived = new System.Windows.Forms.TextBox(); + this.txtReceipts = new System.Windows.Forms.TextBox(); + this.txtOpening = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(12, 380); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(68, 13); + this.label18.TabIndex = 71; + this.label18.Text = "Closing Cash"; + // + // txtClosingCash + // + this.txtClosingCash.Location = new System.Drawing.Point(99, 377); + this.txtClosingCash.Name = "txtClosingCash"; + this.txtClosingCash.ReadOnly = true; + this.txtClosingCash.Size = new System.Drawing.Size(200, 20); + this.txtClosingCash.TabIndex = 55; + // + // dtpFinish + // + this.dtpFinish.Location = new System.Drawing.Point(189, 12); + this.dtpFinish.Name = "dtpFinish"; + this.dtpFinish.Size = new System.Drawing.Size(110, 20); + this.dtpFinish.TabIndex = 42; + this.dtpFinish.ValueChanged += new System.EventHandler(this.dtpFinish_ValueChanged); + // + // dtpStart + // + this.dtpStart.Location = new System.Drawing.Point(15, 11); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(110, 20); + this.dtpStart.TabIndex = 41; + this.dtpStart.ValueChanged += new System.EventHandler(this.dtpStart_ValueChanged); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(12, 276); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(85, 13); + this.label17.TabIndex = 67; + this.label17.Text = "Discounts Given"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(12, 302); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(81, 13); + this.label16.TabIndex = 68; + this.label16.Text = "Rates Changed"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(12, 354); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(53, 13); + this.label15.TabIndex = 70; + this.label15.Text = "Net Sales"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(12, 406); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(82, 13); + this.label14.TabIndex = 72; + this.label14.Text = "Cash Deposited"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(12, 432); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(37, 13); + this.label13.TabIndex = 73; + this.label13.Text = "Status"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(12, 328); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(62, 13); + this.label12.TabIndex = 69; + this.label12.Text = "Bill Pending"; + // + // btnCalculate + // + this.btnCalculate.Location = new System.Drawing.Point(12, 455); + this.btnCalculate.Name = "btnCalculate"; + this.btnCalculate.Size = new System.Drawing.Size(287, 23); + this.btnCalculate.TabIndex = 39; + this.btnCalculate.Text = "&Calculate"; + this.btnCalculate.UseVisualStyleBackColor = true; + this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click); + // + // btnPrint + // + this.btnPrint.Location = new System.Drawing.Point(12, 484); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(287, 23); + this.btnPrint.TabIndex = 40; + this.btnPrint.Text = "&Print"; + this.btnPrint.UseVisualStyleBackColor = true; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // txtStatus + // + this.txtStatus.Location = new System.Drawing.Point(99, 429); + this.txtStatus.Name = "txtStatus"; + this.txtStatus.ReadOnly = true; + this.txtStatus.Size = new System.Drawing.Size(200, 20); + this.txtStatus.TabIndex = 56; + // + // txtSales + // + this.txtSales.Location = new System.Drawing.Point(99, 351); + this.txtSales.Name = "txtSales"; + this.txtSales.ReadOnly = true; + this.txtSales.Size = new System.Drawing.Size(200, 20); + this.txtSales.TabIndex = 54; + this.txtSales.TextChanged += new System.EventHandler(this.txtSales_TextChanged); + // + // txtDeposited + // + this.txtDeposited.Location = new System.Drawing.Point(99, 403); + this.txtDeposited.Name = "txtDeposited"; + this.txtDeposited.Size = new System.Drawing.Size(200, 20); + this.txtDeposited.TabIndex = 38; + // + // txtPending + // + this.txtPending.Location = new System.Drawing.Point(99, 325); + this.txtPending.Name = "txtPending"; + this.txtPending.ReadOnly = true; + this.txtPending.Size = new System.Drawing.Size(200, 20); + this.txtPending.TabIndex = 53; + // + // cmbCashier + // + this.cmbCashier.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCashier.FormattingEnabled = true; + this.cmbCashier.Location = new System.Drawing.Point(99, 38); + this.cmbCashier.Name = "cmbCashier"; + this.cmbCashier.Size = new System.Drawing.Size(200, 21); + this.cmbCashier.TabIndex = 37; + this.cmbCashier.SelectedIndexChanged += new System.EventHandler(this.cmbCashier_SelectedIndexChanged); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(128, 15); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(54, 13); + this.label10.TabIndex = 57; + this.label10.Text = "<- Date ->"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(12, 41); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(42, 13); + this.label9.TabIndex = 58; + this.label9.Text = "Cashier"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(12, 250); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(81, 13); + this.label8.TabIndex = 66; + this.label8.Text = "Voids in System"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(12, 224); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(82, 13); + this.label7.TabIndex = 65; + this.label7.Text = "Additional Voids"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(12, 198); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(53, 13); + this.label6.TabIndex = 64; + this.label6.Text = "Payments"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(12, 172); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(73, 13); + this.label5.TabIndex = 63; + this.label5.Text = "Adv. Adjusted"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 146); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(66, 13); + this.label4.TabIndex = 62; + this.label4.Text = "CC Receipts"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 120); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(78, 13); + this.label3.TabIndex = 61; + this.label3.Text = "Adv. Received"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 94); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(49, 13); + this.label2.TabIndex = 60; + this.label2.Text = "Receipts"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 68); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(47, 13); + this.label1.TabIndex = 59; + this.label1.Text = "Opening"; + // + // txtPayments + // + this.txtPayments.Location = new System.Drawing.Point(99, 195); + this.txtPayments.Name = "txtPayments"; + this.txtPayments.ReadOnly = true; + this.txtPayments.Size = new System.Drawing.Size(200, 20); + this.txtPayments.TabIndex = 48; + // + // txtAdvanceAdjusted + // + this.txtAdvanceAdjusted.Location = new System.Drawing.Point(99, 169); + this.txtAdvanceAdjusted.Name = "txtAdvanceAdjusted"; + this.txtAdvanceAdjusted.ReadOnly = true; + this.txtAdvanceAdjusted.Size = new System.Drawing.Size(200, 20); + this.txtAdvanceAdjusted.TabIndex = 47; + // + // txtCCReceipts + // + this.txtCCReceipts.Location = new System.Drawing.Point(99, 143); + this.txtCCReceipts.Name = "txtCCReceipts"; + this.txtCCReceipts.ReadOnly = true; + this.txtCCReceipts.Size = new System.Drawing.Size(200, 20); + this.txtCCReceipts.TabIndex = 46; + // + // txtAdditionalVoids + // + this.txtAdditionalVoids.Location = new System.Drawing.Point(99, 221); + this.txtAdditionalVoids.Name = "txtAdditionalVoids"; + this.txtAdditionalVoids.ReadOnly = true; + this.txtAdditionalVoids.Size = new System.Drawing.Size(200, 20); + this.txtAdditionalVoids.TabIndex = 49; + // + // txtVoidsInSystem + // + this.txtVoidsInSystem.Location = new System.Drawing.Point(99, 247); + this.txtVoidsInSystem.Name = "txtVoidsInSystem"; + this.txtVoidsInSystem.ReadOnly = true; + this.txtVoidsInSystem.Size = new System.Drawing.Size(200, 20); + this.txtVoidsInSystem.TabIndex = 50; + // + // txtDiscounts + // + this.txtDiscounts.Location = new System.Drawing.Point(99, 273); + this.txtDiscounts.Name = "txtDiscounts"; + this.txtDiscounts.ReadOnly = true; + this.txtDiscounts.Size = new System.Drawing.Size(200, 20); + this.txtDiscounts.TabIndex = 51; + // + // txtRates + // + this.txtRates.Location = new System.Drawing.Point(99, 299); + this.txtRates.Name = "txtRates"; + this.txtRates.ReadOnly = true; + this.txtRates.Size = new System.Drawing.Size(200, 20); + this.txtRates.TabIndex = 52; + // + // txtAdvanceReceived + // + this.txtAdvanceReceived.Location = new System.Drawing.Point(99, 117); + this.txtAdvanceReceived.Name = "txtAdvanceReceived"; + this.txtAdvanceReceived.ReadOnly = true; + this.txtAdvanceReceived.Size = new System.Drawing.Size(200, 20); + this.txtAdvanceReceived.TabIndex = 45; + // + // txtReceipts + // + this.txtReceipts.Location = new System.Drawing.Point(99, 91); + this.txtReceipts.Name = "txtReceipts"; + this.txtReceipts.ReadOnly = true; + this.txtReceipts.Size = new System.Drawing.Size(200, 20); + this.txtReceipts.TabIndex = 44; + // + // txtOpening + // + this.txtOpening.Location = new System.Drawing.Point(99, 65); + this.txtOpening.Name = "txtOpening"; + this.txtOpening.ReadOnly = true; + this.txtOpening.Size = new System.Drawing.Size(200, 20); + this.txtOpening.TabIndex = 43; + // + // Cashier_Checkout_Form + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(311, 519); + this.Controls.Add(this.label18); + this.Controls.Add(this.txtClosingCash); + this.Controls.Add(this.dtpFinish); + this.Controls.Add(this.dtpStart); + this.Controls.Add(this.label17); + this.Controls.Add(this.label16); + this.Controls.Add(this.label15); + this.Controls.Add(this.label14); + this.Controls.Add(this.label13); + this.Controls.Add(this.label12); + this.Controls.Add(this.btnCalculate); + this.Controls.Add(this.btnPrint); + this.Controls.Add(this.txtStatus); + this.Controls.Add(this.txtSales); + this.Controls.Add(this.txtDeposited); + this.Controls.Add(this.txtPending); + this.Controls.Add(this.cmbCashier); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtPayments); + this.Controls.Add(this.txtAdvanceAdjusted); + this.Controls.Add(this.txtCCReceipts); + this.Controls.Add(this.txtAdditionalVoids); + this.Controls.Add(this.txtVoidsInSystem); + this.Controls.Add(this.txtDiscounts); + this.Controls.Add(this.txtRates); + this.Controls.Add(this.txtAdvanceReceived); + this.Controls.Add(this.txtReceipts); + this.Controls.Add(this.txtOpening); + this.MaximizeBox = false; + this.Name = "Cashier_Checkout_Form"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Cashier Checkout Form"; + this.Load += new System.EventHandler(this.Cashier_Checkout_Form_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox txtClosingCash; + private System.Windows.Forms.DateTimePicker dtpFinish; + private System.Windows.Forms.DateTimePicker dtpStart; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Button btnCalculate; + private System.Windows.Forms.Button btnPrint; + private System.Windows.Forms.TextBox txtStatus; + private System.Windows.Forms.TextBox txtSales; + private System.Windows.Forms.TextBox txtDeposited; + private System.Windows.Forms.TextBox txtPending; + private System.Windows.Forms.ComboBox cmbCashier; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtPayments; + private System.Windows.Forms.TextBox txtAdvanceAdjusted; + private System.Windows.Forms.TextBox txtCCReceipts; + private System.Windows.Forms.TextBox txtAdditionalVoids; + private System.Windows.Forms.TextBox txtVoidsInSystem; + private System.Windows.Forms.TextBox txtDiscounts; + private System.Windows.Forms.TextBox txtRates; + private System.Windows.Forms.TextBox txtAdvanceReceived; + private System.Windows.Forms.TextBox txtReceipts; + private System.Windows.Forms.TextBox txtOpening; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.cs b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.cs new file mode 100644 index 0000000..ea9ca38 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.cs @@ -0,0 +1,94 @@ +using System; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Print; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class Cashier_Checkout_Form : Form + { + CheckoutBI coProxy; + private static readonly Tanshu.Logging.SqlLogger log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + public Cashier_Checkout_Form() + { + InitializeComponent(); + } + + private void Cashier_Checkout_Form_Load(object sender, EventArgs e) + { + dtpStart.Format = DateTimePickerFormat.Custom; + dtpStart.CustomFormat = "dd-MMM-yyyy HH:mm:ss"; + dtpStart.Value = DateTime.Now; + dtpFinish.Format = DateTimePickerFormat.Custom; + dtpFinish.CustomFormat = "dd-MMM-yyyy HH:mm:ss"; + dtpFinish.Value = DateTime.Now; + FillUsers(); + } + + private void FillUsers() + { + cmbCashier.DisplayMember = "Name"; + cmbCashier.ValueMember = "UserID"; + cmbCashier.DataSource = new UserBI().GetUsers(); + } + + private void cmbCashier_SelectedIndexChanged(object sender, EventArgs e) + { + EmployeeStatus(); + log.Warn(string.Format("User Checkout: {0} by {1}", coProxy.Cashier, CurrentUser.user.Name)); + } + + private void EmployeeStatus() + { + if (cmbCashier.SelectedValue == null) + return; + dtpStart.Value = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); + dtpFinish.Value = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); + + coProxy = new CheckoutBI((Guid)cmbCashier.SelectedValue, dtpStart.Value, dtpFinish.Value); + txtOpening.Text = coProxy.Opening.ToString(); + txtReceipts.Text = coProxy.Receipts.ToString(); + txtAdvanceReceived.Text = coProxy.AdvanceReceipts.ToString(); + txtCCReceipts.Text = coProxy.CCReceipts.ToString(); + txtAdvanceAdjusted.Text = coProxy.AdvanceAdjusted.ToString(); + txtPayments.Text = coProxy.CashPayments.ToString(); + txtAdditionalVoids.Text = coProxy.AdditionalVoids.ToString(); + txtVoidsInSystem.Text = coProxy.VoidsInSystem.ToString(); + txtPending.Text = coProxy.PendingBills.ToString(); + txtSales.Text = coProxy.NetSales.ToString(); + txtClosingCash.Text = coProxy.ClosingBalance.ToString(); + txtStatus.Text = coProxy.Status; + } + + private void dtpStart_ValueChanged(object sender, EventArgs e) + { + EmployeeStatus(); + } + + private void dtpFinish_ValueChanged(object sender, EventArgs e) + { + EmployeeStatus(); + } + + private void btnCalculate_Click(object sender, EventArgs e) + { + decimal deposited = 0; + if (!decimal.TryParse(txtDeposited.Text, out deposited)) + deposited = 0; + + coProxy.Calculate(deposited, 0); + txtStatus.Text = coProxy.Status; + } + + private void btnPrint_Click(object sender, EventArgs e) + { + Thermal.PrintClosing(coProxy); + } + + private void txtSales_TextChanged(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.resx b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CheckoutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.Designer.cs new file mode 100644 index 0000000..e544dec --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.Designer.cs @@ -0,0 +1,259 @@ + namespace Tanshu.Accounts.PointOfSale +{ + partial class CustomersForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.chkImportant = new System.Windows.Forms.CheckBox(); + this.txtRemarks = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.txtPhone = new System.Windows.Forms.TextBox(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.cmbLedger = new System.Windows.Forms.ComboBox(); + this.bsLedgers = new System.Windows.Forms.BindingSource(this.components); + this.label2 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.Label1 = new System.Windows.Forms.Label(); + this.txtUniqueID = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.bsLedgers)).BeginInit(); + this.SuspendLayout(); + // + // chkImportant + // + this.chkImportant.AutoSize = true; + this.chkImportant.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.chkImportant.Location = new System.Drawing.Point(29, 292); + this.chkImportant.Name = "chkImportant"; + this.chkImportant.Size = new System.Drawing.Size(70, 17); + this.chkImportant.TabIndex = 4; + this.chkImportant.Text = "Important"; + this.chkImportant.UseVisualStyleBackColor = true; + // + // txtRemarks + // + this.txtRemarks.Location = new System.Drawing.Point(81, 208); + this.txtRemarks.Multiline = true; + this.txtRemarks.Name = "txtRemarks"; + this.txtRemarks.Size = new System.Drawing.Size(292, 78); + this.txtRemarks.TabIndex = 3; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(18, 94); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(58, 13); + this.label6.TabIndex = 11; + this.label6.Text = "Phone No."; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(30, 120); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(45, 13); + this.label5.TabIndex = 12; + this.label5.Text = "Address"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(26, 211); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(49, 13); + this.label4.TabIndex = 13; + this.label4.Text = "Remarks"; + // + // txtPhone + // + this.txtPhone.Location = new System.Drawing.Point(81, 91); + this.txtPhone.Name = "txtPhone"; + this.txtPhone.Size = new System.Drawing.Size(292, 20); + this.txtPhone.TabIndex = 1; + // + // txtAddress + // + this.txtAddress.Location = new System.Drawing.Point(81, 117); + this.txtAddress.Multiline = true; + this.txtAddress.Name = "txtAddress"; + this.txtAddress.Size = new System.Drawing.Size(292, 85); + this.txtAddress.TabIndex = 2; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(35, 67); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(40, 13); + this.label3.TabIndex = 10; + this.label3.Text = "Ledger"; + // + // cmbLedger + // + this.cmbLedger.DataSource = this.bsLedgers; + this.cmbLedger.DisplayMember = "Name"; + this.cmbLedger.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbLedger.FormattingEnabled = true; + this.cmbLedger.Location = new System.Drawing.Point(81, 64); + this.cmbLedger.Name = "cmbLedger"; + this.cmbLedger.Size = new System.Drawing.Size(292, 21); + this.cmbLedger.TabIndex = 15; + this.cmbLedger.ValueMember = "LedgerID"; + // + // bsLedgers + // + this.bsLedgers.DataSource = typeof(Tanshu.Accounts.Contracts.LedgerBO); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(40, 41); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(35, 13); + this.label2.TabIndex = 9; + this.label2.Text = "Name"; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(81, 38); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(292, 20); + this.txtName.TabIndex = 0; + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(12, 315); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(75, 23); + this.btnSave.TabIndex = 5; + this.btnSave.Text = "&Save"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(93, 315); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(75, 23); + this.btnDelete.TabIndex = 6; + this.btnDelete.Text = "&Delete"; + this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click); + // + // btnCancel + // + this.btnCancel.AccessibleName = "Done"; + this.btnCancel.Location = new System.Drawing.Point(301, 315); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(72, 24); + this.btnCancel.TabIndex = 7; + this.btnCancel.Text = "&Cancel"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(43, 15); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(32, 13); + this.Label1.TabIndex = 8; + this.Label1.Text = "Code"; + this.Label1.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtUniqueID + // + this.txtUniqueID.AccessibleName = "Unique ID"; + this.txtUniqueID.Enabled = false; + this.txtUniqueID.Location = new System.Drawing.Point(81, 12); + this.txtUniqueID.Name = "txtUniqueID"; + this.txtUniqueID.ReadOnly = true; + this.txtUniqueID.Size = new System.Drawing.Size(292, 20); + this.txtUniqueID.TabIndex = 14; + this.txtUniqueID.Text = "UniqueID"; + this.txtUniqueID.WordWrap = false; + // + // CustomersForm + // + this.AcceptButton = this.btnSave; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(385, 346); + this.Controls.Add(this.Label1); + this.Controls.Add(this.txtUniqueID); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.chkImportant); + this.Controls.Add(this.txtRemarks); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.txtPhone); + this.Controls.Add(this.txtAddress); + this.Controls.Add(this.label3); + this.Controls.Add(this.cmbLedger); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtName); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CustomersForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Customers"; + this.Load += new System.EventHandler(this.CustomersForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.bsLedgers)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox chkImportant; + private System.Windows.Forms.TextBox txtRemarks; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtPhone; + private System.Windows.Forms.TextBox txtAddress; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cmbLedger; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtName; + internal System.Windows.Forms.Button btnSave; + internal System.Windows.Forms.Button btnDelete; + internal System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.BindingSource bsLedgers; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.TextBox txtUniqueID; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.cs b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.cs new file mode 100644 index 0000000..ad81caf --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class CustomersForm : Form + { + private Guid? customerID; + private CustomerBO customer; + private string phone; + #region Form Load + public CustomersForm(Guid? customerID, string phone) + { + InitializeComponent(); + this.customerID = customerID; + this.phone = phone; + } + private void CustomersForm_Load(object sender, EventArgs e) + { + bsLedgers.DataSource = new CustomerBI().GetCustomerLedgers(); + if (customerID.HasValue) + { + customer = new CustomerBI().GetCustomer(customerID.Value); + btnDelete.Enabled = true; + txtName.Text = customer.Name; + cmbLedger.SelectedValue = customer.LedgerID; + txtPhone.Text = customer.Phone; + txtAddress.Text = customer.Address; + txtRemarks.Text = customer.Remarks; + chkImportant.Checked = customer.Important; + } + else + txtPhone.Text = phone; + + btnSave.Text = customerID.HasValue ? "&Update" : "&Save"; + } + #endregion + + #region Buttons + private void btnSave_Click(object sender, EventArgs e) + { + if (!ValidateValues()) + { + MessageBox.Show("Missing Information: Please check the form."); + txtName.Focus(); + } + else + { + Save(); + btnCancel_Click(sender, e); + } + } + private void btnDelete_Click(object sender, EventArgs e) + { + new CustomerBI().Delete(customer.CustomerID); + btnCancel_Click(sender, e); + } + private void btnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + #endregion + + #region Add / Edit / Delete + private bool ValidateValues() + { + bool returnType = true; + if (txtName.Text.Trim().Length > 0) + { + if (cmbLedger.SelectedValue == null) + return false; + } + else + return false; + return returnType; + } + private void Save() + { + if (customer == null) + customer = new CustomerBO(); + UserBO user = CurrentUser.user; + customer.Name = txtName.Text; + customer.LedgerID = (Guid)cmbLedger.SelectedValue; + customer.Phone = txtPhone.Text; + customer.Address = txtAddress.Text; + customer.Remarks = txtRemarks.Text; + customer.Important = chkImportant.Checked; + if (customer.CustomerID == new Guid()) + new CustomerBI().Insert(customer); + else + new CustomerBI().Update(customer); + } + private bool Delete(Guid customerID) + { + return new CustomerBI().Delete(customerID); + } + #endregion + + public CustomerBO Customer + { + get { return customer; } + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.resx b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.resx new file mode 100644 index 0000000..cb9f9cf --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/CustomersForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.Designer.cs new file mode 100644 index 0000000..cb4f3b4 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.Designer.cs @@ -0,0 +1,318 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class PaymentForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + this.btnAdd = new System.Windows.Forms.Button(); + this.Label7 = new System.Windows.Forms.Label(); + this.txtNarration = new System.Windows.Forms.TextBox(); + this.Label6 = new System.Windows.Forms.Label(); + this.txtAmount = new System.Windows.Forms.TextBox(); + this.lblAmount = new System.Windows.Forms.Label(); + this.txtCashier = new System.Windows.Forms.TextBox(); + this.Label3 = new System.Windows.Forms.Label(); + this.Label2 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dgvPayments = new System.Windows.Forms.DataGridView(); + this.dateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.typeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.amountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Narration = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Cashier = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bindingSource = new System.Windows.Forms.BindingSource(this.components); + this.btnDelete = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPayments)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit(); + this.SuspendLayout(); + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(68, 117); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 21); + this.btnAdd.TabIndex = 108; + this.btnAdd.Text = "&Add"; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // Label7 + // + this.Label7.AutoSize = true; + this.Label7.Location = new System.Drawing.Point(12, 94); + this.Label7.Name = "Label7"; + this.Label7.Size = new System.Drawing.Size(50, 13); + this.Label7.TabIndex = 107; + this.Label7.Text = "Narration"; + // + // txtNarration + // + this.txtNarration.Location = new System.Drawing.Point(68, 91); + this.txtNarration.Name = "txtNarration"; + this.txtNarration.Size = new System.Drawing.Size(322, 20); + this.txtNarration.TabIndex = 106; + // + // Label6 + // + this.Label6.AutoSize = true; + this.Label6.Location = new System.Drawing.Point(195, 67); + this.Label6.Name = "Label6"; + this.Label6.Size = new System.Drawing.Size(44, 13); + this.Label6.TabIndex = 104; + this.Label6.Text = "Reason"; + // + // txtAmount + // + this.txtAmount.Location = new System.Drawing.Point(68, 64); + this.txtAmount.Name = "txtAmount"; + this.txtAmount.Size = new System.Drawing.Size(121, 20); + this.txtAmount.TabIndex = 103; + // + // lblAmount + // + this.lblAmount.AutoSize = true; + this.lblAmount.Location = new System.Drawing.Point(12, 67); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.Size = new System.Drawing.Size(43, 13); + this.lblAmount.TabIndex = 102; + this.lblAmount.Text = "Amount"; + // + // txtCashier + // + this.txtCashier.Location = new System.Drawing.Point(68, 38); + this.txtCashier.Name = "txtCashier"; + this.txtCashier.ReadOnly = true; + this.txtCashier.Size = new System.Drawing.Size(322, 20); + this.txtCashier.TabIndex = 101; + // + // Label3 + // + this.Label3.AutoSize = true; + this.Label3.Location = new System.Drawing.Point(12, 41); + this.Label3.Name = "Label3"; + this.Label3.Size = new System.Drawing.Size(42, 13); + this.Label3.TabIndex = 100; + this.Label3.Text = "Cashier"; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(219, 16); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(20, 13); + this.Label2.TabIndex = 97; + this.Label2.Text = "To"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(12, 16); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(30, 13); + this.Label1.TabIndex = 95; + this.Label1.Text = "From"; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.Items.AddRange(new object[] { + "Opening", + "Receipt", + "Payment", + "Additional Void", + "Retained at Night", + "Own in Pocket"}); + this.cmbType.Location = new System.Drawing.Point(245, 64); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(145, 21); + this.cmbType.TabIndex = 105; + // + // dtpTo + // + this.dtpTo.CustomFormat = "dd-MMM-yyyy"; + this.dtpTo.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpTo.Location = new System.Drawing.Point(245, 12); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(145, 20); + this.dtpTo.TabIndex = 98; + this.dtpTo.ValueChanged += new System.EventHandler(this.dtpTo_ValueChanged); + // + // dtpFrom + // + this.dtpFrom.CustomFormat = "dd-MMM-yyyy"; + this.dtpFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpFrom.Location = new System.Drawing.Point(68, 12); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(132, 20); + this.dtpFrom.TabIndex = 96; + this.dtpFrom.ValueChanged += new System.EventHandler(this.dtpFrom_ValueChanged); + // + // dgvPayments + // + this.dgvPayments.AllowUserToAddRows = false; + this.dgvPayments.AllowUserToDeleteRows = false; + this.dgvPayments.AllowUserToResizeRows = false; + this.dgvPayments.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPayments.AutoGenerateColumns = false; + this.dgvPayments.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgvPayments.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPayments.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dateDataGridViewTextBoxColumn, + this.typeDataGridViewTextBoxColumn, + this.amountDataGridViewTextBoxColumn, + this.Narration, + this.Cashier}); + this.dgvPayments.DataSource = this.bindingSource; + this.dgvPayments.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dgvPayments.Location = new System.Drawing.Point(12, 144); + this.dgvPayments.Name = "dgvPayments"; + this.dgvPayments.ReadOnly = true; + this.dgvPayments.RowHeadersVisible = false; + this.dgvPayments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvPayments.Size = new System.Drawing.Size(378, 380); + this.dgvPayments.TabIndex = 110; + // + // dateDataGridViewTextBoxColumn + // + this.dateDataGridViewTextBoxColumn.DataPropertyName = "Date"; + this.dateDataGridViewTextBoxColumn.HeaderText = "Date"; + this.dateDataGridViewTextBoxColumn.Name = "dateDataGridViewTextBoxColumn"; + this.dateDataGridViewTextBoxColumn.ReadOnly = true; + this.dateDataGridViewTextBoxColumn.Width = 55; + // + // typeDataGridViewTextBoxColumn + // + this.typeDataGridViewTextBoxColumn.DataPropertyName = "Type"; + this.typeDataGridViewTextBoxColumn.HeaderText = "Type"; + this.typeDataGridViewTextBoxColumn.Name = "typeDataGridViewTextBoxColumn"; + this.typeDataGridViewTextBoxColumn.ReadOnly = true; + this.typeDataGridViewTextBoxColumn.Width = 56; + // + // amountDataGridViewTextBoxColumn + // + this.amountDataGridViewTextBoxColumn.DataPropertyName = "Amount"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; + dataGridViewCellStyle1.Format = "N2"; + dataGridViewCellStyle1.NullValue = "-"; + this.amountDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.amountDataGridViewTextBoxColumn.HeaderText = "Amount"; + this.amountDataGridViewTextBoxColumn.Name = "amountDataGridViewTextBoxColumn"; + this.amountDataGridViewTextBoxColumn.ReadOnly = true; + this.amountDataGridViewTextBoxColumn.Width = 68; + // + // Narration + // + this.Narration.DataPropertyName = "Narration"; + this.Narration.HeaderText = "Narration"; + this.Narration.Name = "Narration"; + this.Narration.ReadOnly = true; + this.Narration.Width = 75; + // + // Cashier + // + this.Cashier.DataPropertyName = "Cashier"; + this.Cashier.HeaderText = "Cashier"; + this.Cashier.Name = "Cashier"; + this.Cashier.ReadOnly = true; + this.Cashier.Width = 67; + // + // bindingSource + // + this.bindingSource.DataSource = typeof(Tanshu.Accounts.Contracts.PaymentDisplayBO); + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(315, 117); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(75, 21); + this.btnDelete.TabIndex = 109; + this.btnDelete.Text = "&Delete"; + this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click); + // + // PaymentFrom + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(402, 536); + this.Controls.Add(this.dgvPayments); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.Label7); + this.Controls.Add(this.txtNarration); + this.Controls.Add(this.Label6); + this.Controls.Add(this.txtAmount); + this.Controls.Add(this.lblAmount); + this.Controls.Add(this.txtCashier); + this.Controls.Add(this.Label3); + this.Controls.Add(this.Label2); + this.Controls.Add(this.Label1); + this.Controls.Add(this.cmbType); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.MaximizeBox = false; + this.Name = "PaymentFrom"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Payments"; + this.Load += new System.EventHandler(this.PaymentForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgvPayments)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Button btnAdd; + internal System.Windows.Forms.Label Label7; + internal System.Windows.Forms.TextBox txtNarration; + internal System.Windows.Forms.Label Label6; + internal System.Windows.Forms.TextBox txtAmount; + internal System.Windows.Forms.Label lblAmount; + internal System.Windows.Forms.TextBox txtCashier; + internal System.Windows.Forms.Label Label3; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.ComboBox cmbType; + internal System.Windows.Forms.DateTimePicker dtpTo; + internal System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DataGridView dgvPayments; + private System.Windows.Forms.BindingSource bindingSource; + internal System.Windows.Forms.Button btnDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn dateDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn typeDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn amountDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn Narration; + private System.Windows.Forms.DataGridViewTextBoxColumn Cashier; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.cs b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.cs new file mode 100644 index 0000000..688d696 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class PaymentForm : Form + { + List paymentList = new List(); + public PaymentForm() + { + InitializeComponent(); + } + private void btnAdd_Click(object sender, EventArgs e) + { + UserBO user = CurrentUser.user; + if (txtAmount.Text == "0" || cmbType.Text == "") + { + System.Windows.Forms.MessageBox.Show("Amount can't be blank", "Blank not Allowed"); + } + else + { + PaymentBO paymentEntry = new PaymentBO(); + paymentEntry.Date = DateTime.Now; + paymentEntry.Type = cmbType.Text; + paymentEntry.CashierID = user.UserID; + paymentEntry.Amount = Convert.ToDecimal(txtAmount.Text); + paymentEntry.Narration = txtNarration.Text; + new PaymentBI().Insert(paymentEntry); + } + GridBind(); + } + + private void PaymentForm_Load(object sender, EventArgs e) + { + UserBO user = CurrentUser.user; + dtpFrom.Value = DateTime.Today; + dtpTo.Value = DateTime.Today; + GridBind(); + txtCashier.Text = user.Name; + txtCashier.Tag = user.UserID; + } + private void btnDelete_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Payment/Delete")) + MessageBox.Show("You are not authorized to access"); + else + { + UserBO user = CurrentUser.user; + if (dgvPayments.SelectedRows.Count <= 0) + return; + Guid paymentID = ((PaymentDisplayBO)bindingSource.Current).PaymentID; + new PaymentBI().Delete(paymentID); + GridBind(); + } + } + private void GridBind() + { + Guid? userID; + if (!Thread.CurrentPrincipal.IsInRole("Payment/SeeAll")) + userID = null; + else + { + userID = CurrentUser.user.UserID; + } + paymentList = new PaymentBI().GetPayments(userID, dtpFrom.Value, dtpTo.Value); + bindingSource.DataSource = paymentList; + } + + private void dtpFrom_ValueChanged(object sender, EventArgs e) + { + GridBind(); + } + + private void dtpTo_ValueChanged(object sender, EventArgs e) + { + GridBind(); + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.resx b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.resx new file mode 100644 index 0000000..8d369f1 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/PaymentForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + 17, 17 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.cs b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.cs new file mode 100644 index 0000000..42b4e90 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.Print; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class RecieveAdvanceForm : Form + { + bool loading = true; + public RecieveAdvanceForm() + { + InitializeComponent(); + } + + private void btnAdd_Click(object sender, EventArgs e) + { + if (Convert.ToDecimal(txtAmount.Text) == 0) + return; + AdvanceBO adv = new AdvanceBO(); + adv.Narration = txtNarration.Text; + adv.Amount = Convert.ToDecimal(txtAmount.Text.Trim()); + adv.CashierIn = new Guid(txtCashier.Tag.ToString()); + adv.DateIn = DateTime.Now; + new AdvanceBI().Insert(adv); + GridBind(); + PrintAdvances(); + } + + + private void RecieveAdvanceForm_Load(object sender, EventArgs e) + { + dtpFrom.Format = DateTimePickerFormat.Custom; + dtpFrom.CustomFormat = "dd-MMM-yyyy"; + dtpFrom.Value = DateTime.Now; + dtpTo.Format = DateTimePickerFormat.Custom; + dtpTo.CustomFormat = "dd-MMM-yyyy"; + dtpTo.Value = DateTime.Now; + txtCashier.Text = CurrentUser.user.Name; + txtCashier.Tag = CurrentUser.user.UserID; + loading = false; + GridBind(); + } + + private void GridBind() + { + List advance = new AdvanceBI().GetAdvances(dtpFrom.Value, dtpTo.Value, true); + dgExpenses.DataSource = advance; + } + + private void dtpFrom_ValueChanged(object sender, EventArgs e) + { + if (!loading) + GridBind(); + } + private void PrintAdvances() + { + Thermal.PrintAdvance(txtAmount.Text.Trim(), txtNarration.Text.Trim()); + } + private string AddDate(string SqlStringP, DateTime FromDate, DateTime ToDate) + { + return SqlStringP.Replace("$From$", string.Format(FromDate.ToString(), "dd-MMM-yyyy" + " 05:00:00")).Replace("$To$", string.Format(ToDate.ToString(), "dd-MMM-yyyy" + " 23:59:59")); + } + + private void txtAmount_TextChanged(object sender, EventArgs e) + { + + } + + private void txtAmount_Leave(object sender, EventArgs e) + { + if (txtAmount.Text.Trim() == "") + { + txtAmount.Focus(); + } + } + + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.designer.cs b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.designer.cs new file mode 100644 index 0000000..cbadb7f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.designer.cs @@ -0,0 +1,258 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class RecieveAdvanceForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnAdd = new System.Windows.Forms.Button(); + this.Label7 = new System.Windows.Forms.Label(); + this.txtNarration = new System.Windows.Forms.TextBox(); + this.txtAmount = new System.Windows.Forms.TextBox(); + this.lblAmount = new System.Windows.Forms.Label(); + this.txtCashier = new System.Windows.Forms.TextBox(); + this.Label5 = new System.Windows.Forms.Label(); + this.txtVoid = new System.Windows.Forms.TextBox(); + this.txtAmt = new System.Windows.Forms.TextBox(); + this.Label4 = new System.Windows.Forms.Label(); + this.Label3 = new System.Windows.Forms.Label(); + this.Label2 = new System.Windows.Forms.Label(); + this.Label1 = new System.Windows.Forms.Label(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dgExpenses = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dgExpenses)).BeginInit(); + this.SuspendLayout(); + // + // btnAdd + // + this.btnAdd.Location = new System.Drawing.Point(60, 115); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 21); + this.btnAdd.TabIndex = 109; + this.btnAdd.Text = "&Add"; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // Label7 + // + this.Label7.AutoSize = true; + this.Label7.Location = new System.Drawing.Point(12, 92); + this.Label7.Name = "Label7"; + this.Label7.Size = new System.Drawing.Size(50, 13); + this.Label7.TabIndex = 108; + this.Label7.Text = "Narration"; + // + // txtNarration + // + this.txtNarration.Location = new System.Drawing.Point(68, 89); + this.txtNarration.Name = "txtNarration"; + this.txtNarration.Size = new System.Drawing.Size(322, 20); + this.txtNarration.TabIndex = 107; + // + // txtAmount + // + this.txtAmount.Location = new System.Drawing.Point(68, 64); + this.txtAmount.Name = "txtAmount"; + this.txtAmount.Size = new System.Drawing.Size(92, 20); + this.txtAmount.TabIndex = 106; + this.txtAmount.Text = "0"; + this.txtAmount.TextChanged += new System.EventHandler(this.txtAmount_TextChanged); + this.txtAmount.Leave += new System.EventHandler(this.txtAmount_Leave); + // + // lblAmount + // + this.lblAmount.AutoSize = true; + this.lblAmount.Location = new System.Drawing.Point(19, 67); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.Size = new System.Drawing.Size(43, 13); + this.lblAmount.TabIndex = 105; + this.lblAmount.Text = "Amount"; + // + // txtCashier + // + this.txtCashier.Location = new System.Drawing.Point(68, 38); + this.txtCashier.Name = "txtCashier"; + this.txtCashier.ReadOnly = true; + this.txtCashier.Size = new System.Drawing.Size(322, 20); + this.txtCashier.TabIndex = 104; + // + // Label5 + // + this.Label5.AutoSize = true; + this.Label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label5.Location = new System.Drawing.Point(78, 505); + this.Label5.Name = "Label5"; + this.Label5.Size = new System.Drawing.Size(40, 16); + this.Label5.TabIndex = 103; + this.Label5.Text = "Void"; + // + // txtVoid + // + this.txtVoid.BackColor = System.Drawing.Color.Black; + this.txtVoid.ForeColor = System.Drawing.Color.Lime; + this.txtVoid.Location = new System.Drawing.Point(124, 504); + this.txtVoid.Name = "txtVoid"; + this.txtVoid.ReadOnly = true; + this.txtVoid.Size = new System.Drawing.Size(100, 20); + this.txtVoid.TabIndex = 102; + this.txtVoid.Text = "0.00"; + this.txtVoid.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // txtAmt + // + this.txtAmt.BackColor = System.Drawing.Color.Black; + this.txtAmt.ForeColor = System.Drawing.Color.Lime; + this.txtAmt.Location = new System.Drawing.Point(280, 504); + this.txtAmt.Name = "txtAmt"; + this.txtAmt.ReadOnly = true; + this.txtAmt.Size = new System.Drawing.Size(110, 20); + this.txtAmt.TabIndex = 101; + this.txtAmt.Text = "0.00"; + this.txtAmt.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // Label4 + // + this.Label4.AutoSize = true; + this.Label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label4.Location = new System.Drawing.Point(230, 505); + this.Label4.Name = "Label4"; + this.Label4.Size = new System.Drawing.Size(44, 16); + this.Label4.TabIndex = 100; + this.Label4.Text = "Total"; + // + // Label3 + // + this.Label3.AutoSize = true; + this.Label3.Location = new System.Drawing.Point(20, 41); + this.Label3.Name = "Label3"; + this.Label3.Size = new System.Drawing.Size(42, 13); + this.Label3.TabIndex = 99; + this.Label3.Text = "Cashier"; + // + // Label2 + // + this.Label2.AutoSize = true; + this.Label2.Location = new System.Drawing.Point(197, 18); + this.Label2.Name = "Label2"; + this.Label2.Size = new System.Drawing.Size(20, 13); + this.Label2.TabIndex = 96; + this.Label2.Text = "To"; + // + // Label1 + // + this.Label1.AutoSize = true; + this.Label1.Location = new System.Drawing.Point(32, 18); + this.Label1.Name = "Label1"; + this.Label1.Size = new System.Drawing.Size(30, 13); + this.Label1.TabIndex = 94; + this.Label1.Text = "From"; + // + // dtpTo + // + this.dtpTo.Location = new System.Drawing.Point(223, 12); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(167, 20); + this.dtpTo.TabIndex = 97; + // + // dtpFrom + // + this.dtpFrom.Location = new System.Drawing.Point(68, 11); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(121, 20); + this.dtpFrom.TabIndex = 95; + this.dtpFrom.ValueChanged += new System.EventHandler(this.dtpFrom_ValueChanged); + // + // dgExpenses + // + this.dgExpenses.AllowUserToAddRows = false; + this.dgExpenses.AllowUserToDeleteRows = false; + this.dgExpenses.AllowUserToResizeRows = false; + this.dgExpenses.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgExpenses.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgExpenses.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgExpenses.Location = new System.Drawing.Point(12, 142); + this.dgExpenses.Name = "dgExpenses"; + this.dgExpenses.ReadOnly = true; + this.dgExpenses.RowHeadersVisible = false; + this.dgExpenses.RowTemplate.Height = 19; + this.dgExpenses.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgExpenses.Size = new System.Drawing.Size(378, 356); + this.dgExpenses.TabIndex = 110; + // + // RecieveAdvanceForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(402, 536); + this.Controls.Add(this.dgExpenses); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.Label7); + this.Controls.Add(this.txtNarration); + this.Controls.Add(this.txtAmount); + this.Controls.Add(this.lblAmount); + this.Controls.Add(this.txtCashier); + this.Controls.Add(this.Label5); + this.Controls.Add(this.txtVoid); + this.Controls.Add(this.txtAmt); + this.Controls.Add(this.Label4); + this.Controls.Add(this.Label3); + this.Controls.Add(this.Label2); + this.Controls.Add(this.Label1); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.MaximizeBox = false; + this.Name = "RecieveAdvanceForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Received Advance"; + this.Load += new System.EventHandler(this.RecieveAdvanceForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgExpenses)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Button btnAdd; + internal System.Windows.Forms.Label Label7; + internal System.Windows.Forms.TextBox txtNarration; + internal System.Windows.Forms.TextBox txtAmount; + internal System.Windows.Forms.Label lblAmount; + internal System.Windows.Forms.TextBox txtCashier; + internal System.Windows.Forms.Label Label5; + internal System.Windows.Forms.TextBox txtVoid; + internal System.Windows.Forms.TextBox txtAmt; + internal System.Windows.Forms.Label Label4; + internal System.Windows.Forms.Label Label3; + internal System.Windows.Forms.Label Label2; + internal System.Windows.Forms.Label Label1; + internal System.Windows.Forms.DateTimePicker dtpTo; + internal System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DataGridView dgExpenses; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.resx b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/RecieveAdvanceForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.cs b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.cs new file mode 100644 index 0000000..755c7f6 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class frmSaleAnalysisForm : Form + { + Guid? details = null; + List det; + private static readonly Tanshu.Logging.SqlLogger log = new Tanshu.Logging.SqlLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + public frmSaleAnalysisForm() + { + InitializeComponent(); + log.Warn(string.Format("Sales Analysis by: {0}", CurrentUser.user.Name)); + } + + private void dtpStart_ValueChanged(object sender, EventArgs e) + { + ShowStatement(); + } + + private void ShowStatement() + { + DateTime startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); + DateTime finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); + + if (details.HasValue) + { + List list = new SalesAnalysisBI().GetSaleDetail(startDate, finishDate, details.Value); + dgvSale.AutoGenerateColumns = true; + dgvSale.DataSource = list; + dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + dgvSale.Columns[2].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + dgvSale.Columns[3].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + } + else + { + det = new SalesAnalysisBI().GetSale(startDate, finishDate); + dgvSale.AutoGenerateColumns = true; + dgvSale.DataSource = det; + dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + dgvSale.Columns[0].Visible = false; + dgvSale.Columns[2].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + dgvSale.Columns[3].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + } + + + decimal freeSale = 0, voids = 0, pending = 0, net = 0, tax = 0; + new SalesAnalysisBI().GetAdditionalInfo(ref freeSale, ref voids, ref pending, ref net, ref tax, startDate, finishDate); + + txtVoid.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", voids); + txtPending.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", pending); + txtNet.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", net); + txtTax.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", tax); + txtGross.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", net + tax); + } + + private void dtpFinish_ValueChanged(object sender, EventArgs e) + { + ShowStatement(); + } + + private void Sale_Analysis_Form_Load(object sender, EventArgs e) + { + dtpStart.Value = DateTime.Today; + dtpFinish.Value = DateTime.Today; + ShowStatement(); + } + + private void dgvSale_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + try + { + if (!details.HasValue) + details = ((SalesAnalysisBO)dgvSale.SelectedRows[0].DataBoundItem).TypeID; + else + details = null; + ShowStatement(); + } + catch (Exception ex) + { throw ex; } + } + + private void btnPrint_Click(object sender, EventArgs e) + { + if (det != null) + { + DateTime startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); + DateTime finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); + Accounts.Print.Thermal.PrintSale(det, startDate, finishDate); + } + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.designer.cs b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.designer.cs new file mode 100644 index 0000000..f987f2d --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.designer.cs @@ -0,0 +1,240 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class frmSaleAnalysisForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtNet = new System.Windows.Forms.TextBox(); + this.txtTax = new System.Windows.Forms.TextBox(); + this.txtGross = new System.Windows.Forms.TextBox(); + this.txtPending = new System.Windows.Forms.TextBox(); + this.txtVoid = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.dgvSale = new System.Windows.Forms.DataGridView(); + this.dtpFinish = new System.Windows.Forms.DateTimePicker(); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.label10 = new System.Windows.Forms.Label(); + this.btnPrint = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSale)).BeginInit(); + this.SuspendLayout(); + // + // txtNet + // + this.txtNet.Location = new System.Drawing.Point(224, 487); + this.txtNet.Name = "txtNet"; + this.txtNet.ReadOnly = true; + this.txtNet.Size = new System.Drawing.Size(100, 20); + this.txtNet.TabIndex = 17; + // + // txtTax + // + this.txtTax.Location = new System.Drawing.Point(330, 487); + this.txtTax.Name = "txtTax"; + this.txtTax.ReadOnly = true; + this.txtTax.Size = new System.Drawing.Size(100, 20); + this.txtTax.TabIndex = 18; + // + // txtGross + // + this.txtGross.Location = new System.Drawing.Point(436, 487); + this.txtGross.Name = "txtGross"; + this.txtGross.ReadOnly = true; + this.txtGross.Size = new System.Drawing.Size(100, 20); + this.txtGross.TabIndex = 19; + // + // txtPending + // + this.txtPending.Location = new System.Drawing.Point(118, 487); + this.txtPending.Name = "txtPending"; + this.txtPending.ReadOnly = true; + this.txtPending.Size = new System.Drawing.Size(100, 20); + this.txtPending.TabIndex = 16; + // + // txtVoid + // + this.txtVoid.Location = new System.Drawing.Point(12, 487); + this.txtVoid.Name = "txtVoid"; + this.txtVoid.ReadOnly = true; + this.txtVoid.Size = new System.Drawing.Size(100, 20); + this.txtVoid.TabIndex = 15; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(115, 471); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(70, 13); + this.label5.TabIndex = 24; + this.label5.Text = "Pending Sale"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 471); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(52, 13); + this.label4.TabIndex = 23; + this.label4.Text = "Void Sale"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(327, 471); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(25, 13); + this.label3.TabIndex = 26; + this.label3.Text = "Tax"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(433, 471); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 13); + this.label2.TabIndex = 27; + this.label2.Text = "Gross Sale"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(221, 471); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 13); + this.label1.TabIndex = 25; + this.label1.Text = "Net Sale"; + // + // dgvSale + // + this.dgvSale.AllowUserToAddRows = false; + this.dgvSale.AllowUserToDeleteRows = false; + this.dgvSale.AllowUserToResizeRows = false; + this.dgvSale.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvSale.Location = new System.Drawing.Point(12, 41); + this.dgvSale.MultiSelect = false; + this.dgvSale.Name = "dgvSale"; + this.dgvSale.ReadOnly = true; + this.dgvSale.RowHeadersVisible = false; + this.dgvSale.RowTemplate.Height = 19; + this.dgvSale.RowTemplate.ReadOnly = true; + this.dgvSale.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvSale.Size = new System.Drawing.Size(524, 427); + this.dgvSale.TabIndex = 14; + this.dgvSale.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSale_CellDoubleClick); + // + // dtpFinish + // + this.dtpFinish.CustomFormat = "dd-MMM-yyyy"; + this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpFinish.Location = new System.Drawing.Point(168, 12); + this.dtpFinish.Name = "dtpFinish"; + this.dtpFinish.Size = new System.Drawing.Size(90, 20); + this.dtpFinish.TabIndex = 21; + this.dtpFinish.ValueChanged += new System.EventHandler(this.dtpFinish_ValueChanged); + // + // dtpStart + // + this.dtpStart.CustomFormat = "dd-MMM-yyyy"; + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(12, 12); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(90, 20); + this.dtpStart.TabIndex = 20; + this.dtpStart.ValueChanged += new System.EventHandler(this.dtpStart_ValueChanged); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(108, 16); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(54, 13); + this.label10.TabIndex = 22; + this.label10.Text = "<- Date ->"; + // + // btnPrint + // + this.btnPrint.Location = new System.Drawing.Point(461, 12); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(75, 23); + this.btnPrint.TabIndex = 28; + this.btnPrint.Text = "Print"; + this.btnPrint.UseVisualStyleBackColor = true; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // frmSaleAnalysisForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(548, 519); + this.Controls.Add(this.btnPrint); + this.Controls.Add(this.txtNet); + this.Controls.Add(this.txtTax); + this.Controls.Add(this.txtGross); + this.Controls.Add(this.txtPending); + this.Controls.Add(this.txtVoid); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.dgvSale); + this.Controls.Add(this.dtpFinish); + this.Controls.Add(this.dtpStart); + this.Controls.Add(this.label10); + this.MaximizeBox = false; + this.Name = "frmSaleAnalysisForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Sale Analysis Form"; + this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgvSale)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtNet; + private System.Windows.Forms.TextBox txtTax; + private System.Windows.Forms.TextBox txtGross; + private System.Windows.Forms.TextBox txtPending; + private System.Windows.Forms.TextBox txtVoid; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.DataGridView dgvSale; + private System.Windows.Forms.DateTimePicker dtpFinish; + private System.Windows.Forms.DateTimePicker dtpStart; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Button btnPrint; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.resx b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SaleAnalysisForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Sales/SalesForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.Designer.cs new file mode 100644 index 0000000..fd4d90f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.Designer.cs @@ -0,0 +1,990 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class SalesForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.bindingSource = new System.Windows.Forms.BindingSource(this.components); + this.bsWaiter = new System.Windows.Forms.BindingSource(this.components); + this.bsPending = new System.Windows.Forms.BindingSource(this.components); + this.tmrPending = new System.Windows.Forms.Timer(this.components); + this.label7 = new System.Windows.Forms.Label(); + this.txtDiscount = new System.Windows.Forms.TextBox(); + this.Label12 = new System.Windows.Forms.Label(); + this.txtGrossAmount = new System.Windows.Forms.TextBox(); + this.txtAmount = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.txtNarration = new System.Windows.Forms.TextBox(); + this.txtGrossTax = new System.Windows.Forms.TextBox(); + this.dgvProducts = new System.Windows.Forms.DataGridView(); + this.Display = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.printedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.additionalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pnlBilling = new System.Windows.Forms.Panel(); + this.btnWaiter = new System.Windows.Forms.Button(); + this.txtCode = new System.Windows.Forms.TextBox(); + this.btnClear = new System.Windows.Forms.Button(); + this.btnMultiPrint = new System.Windows.Forms.Button(); + this.btnRate = new System.Windows.Forms.Button(); + this.btnPrintKot = new System.Windows.Forms.Button(); + this.btnPrintBill = new System.Windows.Forms.Button(); + this.btnVoid = new System.Windows.Forms.Button(); + this.btnDiscount = new System.Windows.Forms.Button(); + this.btnQuantity = new System.Windows.Forms.Button(); + this.txtTableID = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.txtUserID = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.txtDate = new System.Windows.Forms.TextBox(); + this.txtLastEditDate = new System.Windows.Forms.TextBox(); + this.txtCreationDate = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtBillID = new System.Windows.Forms.TextBox(); + this.txtKotID = new System.Windows.Forms.TextBox(); + this.btnCustomer = new System.Windows.Forms.Button(); + this.pnlWaiting = new System.Windows.Forms.Panel(); + this.btnImportant = new System.Windows.Forms.Button(); + this.dgvPending = new System.Windows.Forms.DataGridView(); + this.selectDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.billNoDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.kotDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TableID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.amountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.importantDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.alarmDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.bookingTimeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.lastEditedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.waiterDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.cashierDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.printedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.alarmTimeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btnAlarm = new System.Windows.Forms.Button(); + this.chkRefresh = new System.Windows.Forms.CheckBox(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.btnPaidCC = new System.Windows.Forms.Button(); + this.btnPaidCash = new System.Windows.Forms.Button(); + this.btnBillList = new System.Windows.Forms.Button(); + this.btnSelectBill = new System.Windows.Forms.Button(); + this.btnStartBill = new System.Windows.Forms.Button(); + this.tcPending = new System.Windows.Forms.TabControl(); + this.tpToday = new System.Windows.Forms.TabPage(); + this.tpWeek = new System.Windows.Forms.TabPage(); + this.tpAll = new System.Windows.Forms.TabPage(); + this.tpImportant = new System.Windows.Forms.TabPage(); + this.tpAlarm = new System.Windows.Forms.TabPage(); + this.lblUser = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsWaiter)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPending)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).BeginInit(); + this.pnlBilling.SuspendLayout(); + this.pnlWaiting.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPending)).BeginInit(); + this.tcPending.SuspendLayout(); + this.SuspendLayout(); + // + // bindingSource + // + this.bindingSource.DataSource = typeof(Tanshu.Accounts.Contracts.SalesBillItemBO); + // + // bsWaiter + // + this.bsWaiter.DataSource = typeof(Tanshu.Accounts.Contracts.WaiterBO); + // + // bsPending + // + this.bsPending.DataSource = typeof(Tanshu.Accounts.Contracts.PendingBillsBO); + // + // tmrPending + // + this.tmrPending.Enabled = true; + this.tmrPending.Interval = 5000; + this.tmrPending.Tick += new System.EventHandler(this.tmrPending_Tick); + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(795, 517); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(49, 13); + this.label7.TabIndex = 112; + this.label7.Text = "Discount"; + this.label7.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtDiscount + // + this.txtDiscount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtDiscount.Location = new System.Drawing.Point(850, 514); + this.txtDiscount.Name = "txtDiscount"; + this.txtDiscount.ReadOnly = true; + this.txtDiscount.Size = new System.Drawing.Size(120, 20); + this.txtDiscount.TabIndex = 113; + this.txtDiscount.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // Label12 + // + this.Label12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.Label12.AutoSize = true; + this.Label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Label12.Location = new System.Drawing.Point(808, 569); + this.Label12.Name = "Label12"; + this.Label12.Size = new System.Drawing.Size(36, 13); + this.Label12.TabIndex = 116; + this.Label12.Text = "Total"; + this.Label12.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtGrossAmount + // + this.txtGrossAmount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtGrossAmount.Location = new System.Drawing.Point(850, 540); + this.txtGrossAmount.Name = "txtGrossAmount"; + this.txtGrossAmount.ReadOnly = true; + this.txtGrossAmount.Size = new System.Drawing.Size(120, 20); + this.txtGrossAmount.TabIndex = 109; + this.txtGrossAmount.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // txtAmount + // + this.txtAmount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtAmount.BackColor = System.Drawing.Color.Black; + this.txtAmount.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtAmount.ForeColor = System.Drawing.Color.Transparent; + this.txtAmount.Location = new System.Drawing.Point(850, 566); + this.txtAmount.Name = "txtAmount"; + this.txtAmount.ReadOnly = true; + this.txtAmount.Size = new System.Drawing.Size(120, 22); + this.txtAmount.TabIndex = 107; + this.txtAmount.Text = "0.00"; + this.txtAmount.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(800, 543); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(46, 13); + this.label6.TabIndex = 108; + this.label6.Text = "Subtotal"; + this.label6.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(808, 488); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(36, 13); + this.label5.TabIndex = 110; + this.label5.Text = "Taxes"; + this.label5.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // txtNarration + // + this.txtNarration.Location = new System.Drawing.Point(12, 482); + this.txtNarration.Multiline = true; + this.txtNarration.Name = "txtNarration"; + this.txtNarration.Size = new System.Drawing.Size(216, 106); + this.txtNarration.TabIndex = 4; + // + // txtGrossTax + // + this.txtGrossTax.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.txtGrossTax.Location = new System.Drawing.Point(850, 488); + this.txtGrossTax.Name = "txtGrossTax"; + this.txtGrossTax.ReadOnly = true; + this.txtGrossTax.Size = new System.Drawing.Size(120, 20); + this.txtGrossTax.TabIndex = 111; + this.txtGrossTax.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // dgvProducts + // + this.dgvProducts.AllowUserToAddRows = false; + this.dgvProducts.AllowUserToDeleteRows = false; + this.dgvProducts.AllowUserToOrderColumns = true; + this.dgvProducts.AllowUserToResizeRows = false; + this.dgvProducts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvProducts.AutoGenerateColumns = false; + this.dgvProducts.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader; + this.dgvProducts.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProducts.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Display, + this.printedDataGridViewTextBoxColumn, + this.additionalDataGridViewTextBoxColumn}); + this.dgvProducts.DataSource = this.bindingSource; + this.dgvProducts.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dgvProducts.Location = new System.Drawing.Point(12, 90); + this.dgvProducts.MultiSelect = false; + this.dgvProducts.Name = "dgvProducts"; + this.dgvProducts.RowHeadersVisible = false; + this.dgvProducts.RowTemplate.Height = 19; + this.dgvProducts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProducts.Size = new System.Drawing.Size(471, 386); + this.dgvProducts.TabIndex = 0; + this.dgvProducts.VirtualMode = true; + this.dgvProducts.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgvProducts_CellFormatting); + // + // Display + // + this.Display.DataPropertyName = "Display"; + this.Display.HeaderText = "Display"; + this.Display.Name = "Display"; + this.Display.ReadOnly = true; + this.Display.Width = 5; + // + // printedDataGridViewTextBoxColumn + // + this.printedDataGridViewTextBoxColumn.DataPropertyName = "Printed"; + dataGridViewCellStyle1.Format = "N2"; + this.printedDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.printedDataGridViewTextBoxColumn.HeaderText = "Printed"; + this.printedDataGridViewTextBoxColumn.Name = "printedDataGridViewTextBoxColumn"; + this.printedDataGridViewTextBoxColumn.ReadOnly = true; + this.printedDataGridViewTextBoxColumn.Width = 5; + // + // additionalDataGridViewTextBoxColumn + // + this.additionalDataGridViewTextBoxColumn.DataPropertyName = "Additional"; + dataGridViewCellStyle2.Format = "N2"; + dataGridViewCellStyle2.NullValue = null; + this.additionalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2; + this.additionalDataGridViewTextBoxColumn.HeaderText = "Additional"; + this.additionalDataGridViewTextBoxColumn.Name = "additionalDataGridViewTextBoxColumn"; + this.additionalDataGridViewTextBoxColumn.ReadOnly = true; + this.additionalDataGridViewTextBoxColumn.Width = 5; + // + // pnlBilling + // + this.pnlBilling.AutoSize = true; + this.pnlBilling.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.pnlBilling.Controls.Add(this.btnWaiter); + this.pnlBilling.Controls.Add(this.txtCode); + this.pnlBilling.Controls.Add(this.btnClear); + this.pnlBilling.Controls.Add(this.btnMultiPrint); + this.pnlBilling.Controls.Add(this.btnRate); + this.pnlBilling.Controls.Add(this.btnPrintKot); + this.pnlBilling.Controls.Add(this.btnPrintBill); + this.pnlBilling.Controls.Add(this.btnVoid); + this.pnlBilling.Controls.Add(this.btnDiscount); + this.pnlBilling.Controls.Add(this.btnQuantity); + this.pnlBilling.Controls.Add(this.txtTableID); + this.pnlBilling.Controls.Add(this.label11); + this.pnlBilling.Controls.Add(this.label10); + this.pnlBilling.Controls.Add(this.txtUserID); + this.pnlBilling.Controls.Add(this.label9); + this.pnlBilling.Controls.Add(this.label8); + this.pnlBilling.Controls.Add(this.label4); + this.pnlBilling.Controls.Add(this.txtDate); + this.pnlBilling.Controls.Add(this.txtLastEditDate); + this.pnlBilling.Controls.Add(this.txtCreationDate); + this.pnlBilling.Controls.Add(this.label3); + this.pnlBilling.Controls.Add(this.label2); + this.pnlBilling.Controls.Add(this.txtBillID); + this.pnlBilling.Controls.Add(this.txtKotID); + this.pnlBilling.Controls.Add(this.btnCustomer); + this.pnlBilling.Controls.Add(this.dgvProducts); + this.pnlBilling.Controls.Add(this.txtGrossTax); + this.pnlBilling.Controls.Add(this.txtNarration); + this.pnlBilling.Controls.Add(this.label5); + this.pnlBilling.Controls.Add(this.label6); + this.pnlBilling.Controls.Add(this.txtAmount); + this.pnlBilling.Controls.Add(this.txtGrossAmount); + this.pnlBilling.Controls.Add(this.Label12); + this.pnlBilling.Controls.Add(this.txtDiscount); + this.pnlBilling.Controls.Add(this.label7); + this.pnlBilling.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlBilling.Location = new System.Drawing.Point(0, 0); + this.pnlBilling.Name = "pnlBilling"; + this.pnlBilling.Size = new System.Drawing.Size(982, 662); + this.pnlBilling.TabIndex = 121; + // + // btnWaiter + // + this.btnWaiter.Location = new System.Drawing.Point(341, 482); + this.btnWaiter.Name = "btnWaiter"; + this.btnWaiter.Size = new System.Drawing.Size(101, 106); + this.btnWaiter.TabIndex = 150; + this.btnWaiter.Text = "Select Waiter - F5"; + this.btnWaiter.UseVisualStyleBackColor = true; + this.btnWaiter.Click += new System.EventHandler(this.btnWaiter_Click); + // + // txtCode + // + this.txtCode.Location = new System.Drawing.Point(489, 54); + this.txtCode.Name = "txtCode"; + this.txtCode.Size = new System.Drawing.Size(481, 20); + this.txtCode.TabIndex = 149; + // + // btnClear + // + this.btnClear.Location = new System.Drawing.Point(234, 482); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(101, 106); + this.btnClear.TabIndex = 148; + this.btnClear.Text = "Clear - Esc"; + this.btnClear.UseVisualStyleBackColor = true; + this.btnClear.Click += new System.EventHandler(this.btnClear_Click); + // + // btnMultiPrint + // + this.btnMultiPrint.Location = new System.Drawing.Point(773, 485); + this.btnMultiPrint.Name = "btnMultiPrint"; + this.btnMultiPrint.Size = new System.Drawing.Size(21, 106); + this.btnMultiPrint.TabIndex = 147; + this.btnMultiPrint.Text = "Multi Print"; + this.btnMultiPrint.UseVisualStyleBackColor = true; + this.btnMultiPrint.Click += new System.EventHandler(this.btnMultiPrint_Click); + // + // btnRate + // + this.btnRate.Location = new System.Drawing.Point(663, 566); + this.btnRate.Name = "btnRate"; + this.btnRate.Size = new System.Drawing.Size(104, 23); + this.btnRate.TabIndex = 146; + this.btnRate.Text = "&Rate"; + this.btnRate.UseVisualStyleBackColor = true; + this.btnRate.Click += new System.EventHandler(this.btnRate_Click); + // + // btnPrintKot + // + this.btnPrintKot.Location = new System.Drawing.Point(555, 482); + this.btnPrintKot.Name = "btnPrintKot"; + this.btnPrintKot.Size = new System.Drawing.Size(102, 106); + this.btnPrintKot.TabIndex = 145; + this.btnPrintKot.Text = "Print KOT - F12"; + this.btnPrintKot.UseVisualStyleBackColor = true; + this.btnPrintKot.Click += new System.EventHandler(this.btnPrintKot_Click); + // + // btnPrintBill + // + this.btnPrintBill.Location = new System.Drawing.Point(448, 482); + this.btnPrintBill.Name = "btnPrintBill"; + this.btnPrintBill.Size = new System.Drawing.Size(101, 106); + this.btnPrintBill.TabIndex = 144; + this.btnPrintBill.Text = "Print Bill - F11"; + this.btnPrintBill.UseVisualStyleBackColor = true; + this.btnPrintBill.Click += new System.EventHandler(this.btnPrintBill_Click); + // + // btnVoid + // + this.btnVoid.Location = new System.Drawing.Point(663, 485); + this.btnVoid.Name = "btnVoid"; + this.btnVoid.Size = new System.Drawing.Size(104, 23); + this.btnVoid.TabIndex = 143; + this.btnVoid.Text = "Cancel Current Bill"; + this.btnVoid.UseVisualStyleBackColor = true; + this.btnVoid.Click += new System.EventHandler(this.btnVoid_Click); + // + // btnDiscount + // + this.btnDiscount.Location = new System.Drawing.Point(663, 514); + this.btnDiscount.Name = "btnDiscount"; + this.btnDiscount.Size = new System.Drawing.Size(104, 23); + this.btnDiscount.TabIndex = 142; + this.btnDiscount.Text = "Discount - F3"; + this.btnDiscount.UseVisualStyleBackColor = true; + this.btnDiscount.Click += new System.EventHandler(this.btnDiscount_Click); + // + // btnQuantity + // + this.btnQuantity.Location = new System.Drawing.Point(663, 537); + this.btnQuantity.Name = "btnQuantity"; + this.btnQuantity.Size = new System.Drawing.Size(104, 23); + this.btnQuantity.TabIndex = 141; + this.btnQuantity.Text = "Quantity - F2"; + this.btnQuantity.UseVisualStyleBackColor = true; + this.btnQuantity.Click += new System.EventHandler(this.btnQuantity_Click); + // + // txtTableID + // + this.txtTableID.Location = new System.Drawing.Point(390, 28); + this.txtTableID.Name = "txtTableID"; + this.txtTableID.ReadOnly = true; + this.txtTableID.Size = new System.Drawing.Size(93, 20); + this.txtTableID.TabIndex = 140; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(387, 12); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(34, 13); + this.label11.TabIndex = 139; + this.label11.Text = "Table"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(804, 12); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(73, 13); + this.label10.TabIndex = 138; + this.label10.Text = "Last Edit User"; + // + // txtUserID + // + this.txtUserID.Location = new System.Drawing.Point(807, 28); + this.txtUserID.Name = "txtUserID"; + this.txtUserID.ReadOnly = true; + this.txtUserID.Size = new System.Drawing.Size(163, 20); + this.txtUserID.TabIndex = 137; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(259, 12); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(72, 13); + this.label9.TabIndex = 136; + this.label9.Text = "Booking Time"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(486, 12); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(84, 13); + this.label8.TabIndex = 135; + this.label8.Text = "Bill Printing Time"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(645, 12); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(74, 13); + this.label4.TabIndex = 134; + this.label4.Text = "Last Edit Time"; + // + // txtDate + // + this.txtDate.Location = new System.Drawing.Point(489, 28); + this.txtDate.Name = "txtDate"; + this.txtDate.ReadOnly = true; + this.txtDate.Size = new System.Drawing.Size(153, 20); + this.txtDate.TabIndex = 133; + // + // txtLastEditDate + // + this.txtLastEditDate.Location = new System.Drawing.Point(648, 28); + this.txtLastEditDate.Name = "txtLastEditDate"; + this.txtLastEditDate.ReadOnly = true; + this.txtLastEditDate.Size = new System.Drawing.Size(153, 20); + this.txtLastEditDate.TabIndex = 132; + // + // txtCreationDate + // + this.txtCreationDate.Location = new System.Drawing.Point(262, 28); + this.txtCreationDate.Name = "txtCreationDate"; + this.txtCreationDate.ReadOnly = true; + this.txtCreationDate.Size = new System.Drawing.Size(122, 20); + this.txtCreationDate.TabIndex = 131; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(124, 12); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(69, 13); + this.label3.TabIndex = 130; + this.label3.Text = "KOT Number"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 12); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(60, 13); + this.label2.TabIndex = 129; + this.label2.Text = "Bill Number"; + // + // txtBillID + // + this.txtBillID.Location = new System.Drawing.Point(12, 28); + this.txtBillID.Name = "txtBillID"; + this.txtBillID.ReadOnly = true; + this.txtBillID.Size = new System.Drawing.Size(109, 20); + this.txtBillID.TabIndex = 128; + // + // txtKotID + // + this.txtKotID.Location = new System.Drawing.Point(127, 28); + this.txtKotID.Name = "txtKotID"; + this.txtKotID.ReadOnly = true; + this.txtKotID.Size = new System.Drawing.Size(129, 20); + this.txtKotID.TabIndex = 127; + // + // btnCustomer + // + this.btnCustomer.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnCustomer.ForeColor = System.Drawing.Color.Red; + this.btnCustomer.Location = new System.Drawing.Point(12, 54); + this.btnCustomer.Name = "btnCustomer"; + this.btnCustomer.Size = new System.Drawing.Size(471, 34); + this.btnCustomer.TabIndex = 126; + this.btnCustomer.UseVisualStyleBackColor = true; + this.btnCustomer.Click += new System.EventHandler(this.btnCustomer_Click); + // + // pnlWaiting + // + this.pnlWaiting.AutoSize = true; + this.pnlWaiting.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.pnlWaiting.Controls.Add(this.btnImportant); + this.pnlWaiting.Controls.Add(this.dgvPending); + this.pnlWaiting.Controls.Add(this.btnAlarm); + this.pnlWaiting.Controls.Add(this.chkRefresh); + this.pnlWaiting.Controls.Add(this.btnRefresh); + this.pnlWaiting.Controls.Add(this.btnPaidCC); + this.pnlWaiting.Controls.Add(this.btnPaidCash); + this.pnlWaiting.Controls.Add(this.btnBillList); + this.pnlWaiting.Controls.Add(this.btnSelectBill); + this.pnlWaiting.Controls.Add(this.btnStartBill); + this.pnlWaiting.Controls.Add(this.tcPending); + this.pnlWaiting.Controls.Add(this.lblUser); + this.pnlWaiting.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlWaiting.Location = new System.Drawing.Point(0, 0); + this.pnlWaiting.Name = "pnlWaiting"; + this.pnlWaiting.Size = new System.Drawing.Size(982, 662); + this.pnlWaiting.TabIndex = 121; + this.pnlWaiting.Paint += new System.Windows.Forms.PaintEventHandler(this.pnlWaiting_Paint); + // + // btnImportant + // + this.btnImportant.Location = new System.Drawing.Point(850, 459); + this.btnImportant.Name = "btnImportant"; + this.btnImportant.Size = new System.Drawing.Size(120, 62); + this.btnImportant.TabIndex = 137; + this.btnImportant.Text = "Mark / UnMark Important"; + this.btnImportant.UseVisualStyleBackColor = true; + this.btnImportant.Click += new System.EventHandler(this.btnImportant_Click); + // + // dgvPending + // + this.dgvPending.AllowUserToAddRows = false; + this.dgvPending.AllowUserToDeleteRows = false; + this.dgvPending.AllowUserToOrderColumns = true; + this.dgvPending.AllowUserToResizeRows = false; + this.dgvPending.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPending.AutoGenerateColumns = false; + this.dgvPending.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + this.dgvPending.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPending.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.selectDataGridViewCheckBoxColumn, + this.billNoDataGridViewTextBoxColumn, + this.kotDataGridViewTextBoxColumn, + this.TableID, + this.amountDataGridViewTextBoxColumn, + this.importantDataGridViewCheckBoxColumn, + this.alarmDataGridViewCheckBoxColumn, + this.bookingTimeDataGridViewTextBoxColumn, + this.lastEditedDataGridViewTextBoxColumn, + this.waiterDataGridViewTextBoxColumn, + this.cashierDataGridViewTextBoxColumn, + this.printedDataGridViewCheckBoxColumn, + this.alarmTimeDataGridViewTextBoxColumn}); + this.dgvPending.DataSource = this.bsPending; + this.dgvPending.Location = new System.Drawing.Point(12, 40); + this.dgvPending.MultiSelect = false; + this.dgvPending.Name = "dgvPending"; + this.dgvPending.RowHeadersVisible = false; + this.dgvPending.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvPending.Size = new System.Drawing.Size(696, 487); + this.dgvPending.TabIndex = 0; + this.dgvPending.VirtualMode = true; + this.dgvPending.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPending_CellDoubleClick); + this.dgvPending.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(this.dgvPending_CellValueNeeded); + this.dgvPending.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgvPending_CellFormatting); + this.dgvPending.CellValuePushed += new System.Windows.Forms.DataGridViewCellValueEventHandler(this.dgvPending_CellValuePushed); + // + // selectDataGridViewCheckBoxColumn + // + this.selectDataGridViewCheckBoxColumn.HeaderText = "Select"; + this.selectDataGridViewCheckBoxColumn.Name = "selectDataGridViewCheckBoxColumn"; + this.selectDataGridViewCheckBoxColumn.Width = 43; + // + // billNoDataGridViewTextBoxColumn + // + this.billNoDataGridViewTextBoxColumn.DataPropertyName = "BillNo"; + this.billNoDataGridViewTextBoxColumn.HeaderText = "BillNo"; + this.billNoDataGridViewTextBoxColumn.Name = "billNoDataGridViewTextBoxColumn"; + this.billNoDataGridViewTextBoxColumn.Width = 59; + // + // kotDataGridViewTextBoxColumn + // + this.kotDataGridViewTextBoxColumn.DataPropertyName = "Kot"; + this.kotDataGridViewTextBoxColumn.HeaderText = "Kot"; + this.kotDataGridViewTextBoxColumn.Name = "kotDataGridViewTextBoxColumn"; + this.kotDataGridViewTextBoxColumn.Width = 48; + // + // TableID + // + this.TableID.DataPropertyName = "TableID"; + this.TableID.HeaderText = "TableID"; + this.TableID.Name = "TableID"; + this.TableID.Width = 70; + // + // amountDataGridViewTextBoxColumn + // + this.amountDataGridViewTextBoxColumn.DataPropertyName = "Amount"; + this.amountDataGridViewTextBoxColumn.HeaderText = "Amount"; + this.amountDataGridViewTextBoxColumn.Name = "amountDataGridViewTextBoxColumn"; + this.amountDataGridViewTextBoxColumn.Width = 68; + // + // importantDataGridViewCheckBoxColumn + // + this.importantDataGridViewCheckBoxColumn.DataPropertyName = "Important"; + this.importantDataGridViewCheckBoxColumn.HeaderText = "Important"; + this.importantDataGridViewCheckBoxColumn.Name = "importantDataGridViewCheckBoxColumn"; + this.importantDataGridViewCheckBoxColumn.Width = 57; + // + // alarmDataGridViewCheckBoxColumn + // + this.alarmDataGridViewCheckBoxColumn.DataPropertyName = "Alarm"; + this.alarmDataGridViewCheckBoxColumn.HeaderText = "Alarm"; + this.alarmDataGridViewCheckBoxColumn.Name = "alarmDataGridViewCheckBoxColumn"; + this.alarmDataGridViewCheckBoxColumn.Width = 39; + // + // bookingTimeDataGridViewTextBoxColumn + // + this.bookingTimeDataGridViewTextBoxColumn.DataPropertyName = "BookingTime"; + this.bookingTimeDataGridViewTextBoxColumn.HeaderText = "BookingTime"; + this.bookingTimeDataGridViewTextBoxColumn.Name = "bookingTimeDataGridViewTextBoxColumn"; + this.bookingTimeDataGridViewTextBoxColumn.Width = 94; + // + // lastEditedDataGridViewTextBoxColumn + // + this.lastEditedDataGridViewTextBoxColumn.DataPropertyName = "LastEdited"; + this.lastEditedDataGridViewTextBoxColumn.HeaderText = "LastEdited"; + this.lastEditedDataGridViewTextBoxColumn.Name = "lastEditedDataGridViewTextBoxColumn"; + this.lastEditedDataGridViewTextBoxColumn.Width = 82; + // + // waiterDataGridViewTextBoxColumn + // + this.waiterDataGridViewTextBoxColumn.DataPropertyName = "Waiter"; + this.waiterDataGridViewTextBoxColumn.HeaderText = "Waiter"; + this.waiterDataGridViewTextBoxColumn.Name = "waiterDataGridViewTextBoxColumn"; + this.waiterDataGridViewTextBoxColumn.Width = 63; + // + // cashierDataGridViewTextBoxColumn + // + this.cashierDataGridViewTextBoxColumn.DataPropertyName = "Cashier"; + this.cashierDataGridViewTextBoxColumn.HeaderText = "Cashier"; + this.cashierDataGridViewTextBoxColumn.Name = "cashierDataGridViewTextBoxColumn"; + this.cashierDataGridViewTextBoxColumn.Width = 67; + // + // printedDataGridViewCheckBoxColumn + // + this.printedDataGridViewCheckBoxColumn.DataPropertyName = "Printed"; + this.printedDataGridViewCheckBoxColumn.HeaderText = "Printed"; + this.printedDataGridViewCheckBoxColumn.Name = "printedDataGridViewCheckBoxColumn"; + this.printedDataGridViewCheckBoxColumn.Width = 46; + // + // alarmTimeDataGridViewTextBoxColumn + // + this.alarmTimeDataGridViewTextBoxColumn.DataPropertyName = "AlarmTime"; + this.alarmTimeDataGridViewTextBoxColumn.HeaderText = "AlarmTime"; + this.alarmTimeDataGridViewTextBoxColumn.Name = "alarmTimeDataGridViewTextBoxColumn"; + this.alarmTimeDataGridViewTextBoxColumn.Width = 81; + // + // btnAlarm + // + this.btnAlarm.Location = new System.Drawing.Point(850, 393); + this.btnAlarm.Name = "btnAlarm"; + this.btnAlarm.Size = new System.Drawing.Size(120, 64); + this.btnAlarm.TabIndex = 136; + this.btnAlarm.Text = "Alarm"; + this.btnAlarm.UseVisualStyleBackColor = true; + this.btnAlarm.Click += new System.EventHandler(this.btnAlarm_Click); + // + // chkRefresh + // + this.chkRefresh.AutoSize = true; + this.chkRefresh.Checked = true; + this.chkRefresh.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkRefresh.Location = new System.Drawing.Point(714, 40); + this.chkRefresh.Name = "chkRefresh"; + this.chkRefresh.Size = new System.Drawing.Size(121, 17); + this.chkRefresh.TabIndex = 134; + this.chkRefresh.Text = "Keep refreshing Bills"; + this.chkRefresh.UseVisualStyleBackColor = true; + // + // btnRefresh + // + this.btnRefresh.Location = new System.Drawing.Point(9, 527); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(129, 117); + this.btnRefresh.TabIndex = 133; + this.btnRefresh.Text = "Refresh - F5"; + this.btnRefresh.UseVisualStyleBackColor = true; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // btnPaidCC + // + this.btnPaidCC.Location = new System.Drawing.Point(850, 527); + this.btnPaidCC.Name = "btnPaidCC"; + this.btnPaidCC.Size = new System.Drawing.Size(120, 117); + this.btnPaidCC.TabIndex = 6; + this.btnPaidCC.Text = "Paid By CC"; + this.btnPaidCC.UseVisualStyleBackColor = true; + this.btnPaidCC.Click += new System.EventHandler(this.btnPaidCC_Click); + // + // btnPaidCash + // + this.btnPaidCash.Location = new System.Drawing.Point(714, 527); + this.btnPaidCash.Name = "btnPaidCash"; + this.btnPaidCash.Size = new System.Drawing.Size(130, 117); + this.btnPaidCash.TabIndex = 5; + this.btnPaidCash.Text = "Paid"; + this.btnPaidCash.UseVisualStyleBackColor = true; + this.btnPaidCash.Click += new System.EventHandler(this.btnPaidCash_Click); + // + // btnBillList + // + this.btnBillList.Location = new System.Drawing.Point(714, 393); + this.btnBillList.Name = "btnBillList"; + this.btnBillList.Size = new System.Drawing.Size(130, 128); + this.btnBillList.TabIndex = 4; + this.btnBillList.Text = "List Of Bills to Cancel"; + this.btnBillList.UseVisualStyleBackColor = true; + this.btnBillList.Click += new System.EventHandler(this.btnBillList_Click); + // + // btnSelectBill + // + this.btnSelectBill.Location = new System.Drawing.Point(714, 239); + this.btnSelectBill.Name = "btnSelectBill"; + this.btnSelectBill.Size = new System.Drawing.Size(256, 148); + this.btnSelectBill.TabIndex = 3; + this.btnSelectBill.Text = "Select Bill"; + this.btnSelectBill.UseVisualStyleBackColor = true; + this.btnSelectBill.Click += new System.EventHandler(this.btnSelectBill_Click); + // + // btnStartBill + // + this.btnStartBill.Location = new System.Drawing.Point(714, 63); + this.btnStartBill.Name = "btnStartBill"; + this.btnStartBill.Size = new System.Drawing.Size(256, 170); + this.btnStartBill.TabIndex = 2; + this.btnStartBill.Text = "New Bill - F6"; + this.btnStartBill.UseVisualStyleBackColor = true; + this.btnStartBill.Click += new System.EventHandler(this.btnStartBill_Click); + // + // tcPending + // + this.tcPending.Controls.Add(this.tpToday); + this.tcPending.Controls.Add(this.tpWeek); + this.tcPending.Controls.Add(this.tpAll); + this.tcPending.Controls.Add(this.tpImportant); + this.tcPending.Controls.Add(this.tpAlarm); + this.tcPending.Location = new System.Drawing.Point(192, 12); + this.tcPending.Name = "tcPending"; + this.tcPending.SelectedIndex = 0; + this.tcPending.Size = new System.Drawing.Size(271, 20); + this.tcPending.TabIndex = 1; + this.tcPending.SelectedIndexChanged += new System.EventHandler(this.tcPending_SelectedIndexChanged); + // + // tpToday + // + this.tpToday.Location = new System.Drawing.Point(4, 22); + this.tpToday.Name = "tpToday"; + this.tpToday.Padding = new System.Windows.Forms.Padding(3); + this.tpToday.Size = new System.Drawing.Size(263, 0); + this.tpToday.TabIndex = 1; + this.tpToday.Text = "Today"; + this.tpToday.UseVisualStyleBackColor = true; + // + // tpWeek + // + this.tpWeek.Location = new System.Drawing.Point(4, 22); + this.tpWeek.Name = "tpWeek"; + this.tpWeek.Padding = new System.Windows.Forms.Padding(3); + this.tpWeek.Size = new System.Drawing.Size(263, 0); + this.tpWeek.TabIndex = 2; + this.tpWeek.Text = "Week"; + this.tpWeek.UseVisualStyleBackColor = true; + // + // tpAll + // + this.tpAll.Location = new System.Drawing.Point(4, 22); + this.tpAll.Name = "tpAll"; + this.tpAll.Padding = new System.Windows.Forms.Padding(3); + this.tpAll.Size = new System.Drawing.Size(263, 0); + this.tpAll.TabIndex = 3; + this.tpAll.Text = "All"; + this.tpAll.UseVisualStyleBackColor = true; + // + // tpImportant + // + this.tpImportant.Location = new System.Drawing.Point(4, 22); + this.tpImportant.Name = "tpImportant"; + this.tpImportant.Padding = new System.Windows.Forms.Padding(3); + this.tpImportant.Size = new System.Drawing.Size(263, 0); + this.tpImportant.TabIndex = 4; + this.tpImportant.Text = "Important"; + this.tpImportant.UseVisualStyleBackColor = true; + // + // tpAlarm + // + this.tpAlarm.Location = new System.Drawing.Point(4, 22); + this.tpAlarm.Name = "tpAlarm"; + this.tpAlarm.Padding = new System.Windows.Forms.Padding(3); + this.tpAlarm.Size = new System.Drawing.Size(263, 0); + this.tpAlarm.TabIndex = 5; + this.tpAlarm.Text = "Alarms"; + this.tpAlarm.UseVisualStyleBackColor = true; + // + // lblUser + // + this.lblUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 48F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblUser.ForeColor = System.Drawing.Color.Red; + this.lblUser.Location = new System.Drawing.Point(144, 530); + this.lblUser.Name = "lblUser"; + this.lblUser.Size = new System.Drawing.Size(564, 114); + this.lblUser.TabIndex = 135; + this.lblUser.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // SalesForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(982, 662); + this.Controls.Add(this.pnlWaiting); + this.Controls.Add(this.pnlBilling); + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "SalesForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "F2-Qty., F3-Discount, F4-Customer, F5-Waiter, F7-Product, F8-LoadBill, F9-Set Amo" + + "unt, F11-Print Bill, F12-Print KOT, ESC-Cancel"; + this.Load += new System.EventHandler(this.SalesForm_Load); + this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SalesForm_KeyDown); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsWaiter)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPending)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).EndInit(); + this.pnlBilling.ResumeLayout(false); + this.pnlBilling.PerformLayout(); + this.pnlWaiting.ResumeLayout(false); + this.pnlWaiting.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPending)).EndInit(); + this.tcPending.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.BindingSource bindingSource; + private System.Windows.Forms.BindingSource bsWaiter; + private System.Windows.Forms.BindingSource bsPending; + private System.Windows.Forms.Timer tmrPending; + internal System.Windows.Forms.Label label7; + internal System.Windows.Forms.TextBox txtDiscount; + internal System.Windows.Forms.Label Label12; + internal System.Windows.Forms.TextBox txtGrossAmount; + internal System.Windows.Forms.TextBox txtAmount; + internal System.Windows.Forms.Label label6; + internal System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtNarration; + internal System.Windows.Forms.TextBox txtGrossTax; + private System.Windows.Forms.DataGridView dgvProducts; + private System.Windows.Forms.Panel pnlBilling; + private System.Windows.Forms.Panel pnlWaiting; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Button btnPaidCC; + private System.Windows.Forms.Button btnPaidCash; + private System.Windows.Forms.Button btnBillList; + private System.Windows.Forms.Button btnSelectBill; + private System.Windows.Forms.Button btnStartBill; + private System.Windows.Forms.TabControl tcPending; + private System.Windows.Forms.TabPage tpToday; + private System.Windows.Forms.TabPage tpWeek; + private System.Windows.Forms.TabPage tpAll; + private System.Windows.Forms.TabPage tpImportant; + private System.Windows.Forms.TabPage tpAlarm; + private System.Windows.Forms.DataGridView dgvPending; + private System.Windows.Forms.Button btnCustomer; + private System.Windows.Forms.TextBox txtBillID; + private System.Windows.Forms.TextBox txtKotID; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtDate; + private System.Windows.Forms.TextBox txtLastEditDate; + private System.Windows.Forms.TextBox txtCreationDate; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox txtUserID; + private System.Windows.Forms.TextBox txtTableID; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Button btnDiscount; + private System.Windows.Forms.Button btnQuantity; + private System.Windows.Forms.CheckBox chkRefresh; + private System.Windows.Forms.Button btnPrintKot; + private System.Windows.Forms.Button btnPrintBill; + private System.Windows.Forms.Button btnVoid; + private System.Windows.Forms.Button btnMultiPrint; + private System.Windows.Forms.Button btnRate; + private System.Windows.Forms.Button btnClear; + private System.Windows.Forms.Label lblUser; + private System.Windows.Forms.Button btnAlarm; + private System.Windows.Forms.DataGridViewCheckBoxColumn selectDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn billNoDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn kotDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn TableID; + private System.Windows.Forms.DataGridViewTextBoxColumn amountDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn importantDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn alarmDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn bookingTimeDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn lastEditedDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn waiterDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn cashierDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn printedDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn alarmTimeDataGridViewTextBoxColumn; + private System.Windows.Forms.Button btnImportant; + private System.Windows.Forms.TextBox txtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn Display; + private System.Windows.Forms.DataGridViewTextBoxColumn printedDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn additionalDataGridViewTextBoxColumn; + private System.Windows.Forms.Button btnWaiter; + } +} + diff --git a/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs new file mode 100644 index 0000000..0bd568e --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs @@ -0,0 +1,934 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.Linq; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; +using Tanshu.Common; + + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class SalesForm : Form + { + #region Waiting + private List selectedBills = new List(); + private List pendingBills = new List(); + private PendingType pendingList = PendingType.Today; + #endregion + private SaleFormState formState = SaleFormState.Waiting; + #region Billing + private Dictionary bill = new Dictionary(); + private CustomerBO customer = new CustomerBI().GetCustomer(new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")); + #endregion + private SaleVoucherBO billInfo; + object lockObject = new object(); + Guid? newBillID; + + public SalesForm() + { + InitializeComponent(); + btnCustomer.Text = customer.Name; + lblUser.Text = CurrentUser.user.Name; + } + + public SalesForm(Guid voucherID) + : this() + { + newBillID = voucherID; + } + + private void SalesForm_KeyDown(object sender, KeyEventArgs e) + { + if (formState == SaleFormState.Billing) + { + #region Billing KeyDown + switch (e.KeyCode) + { + case Keys.F2: + { + if (dgvProducts.Rows.Count > 0) + SetQuantity(CurrentProduct, 0, false, true); + break; + } + case Keys.F3: + { + btnDiscount_Click(sender, new EventArgs()); + break; + } + case Keys.F4: + { + if (!e.Alt) + ShowCustomerList(false); + break; + } + case Keys.F5: + { + btnWaiter_Click(sender, new EventArgs()); + break; + } + case Keys.F7: + { + using (SelectProduct selectProduct = new SelectProduct(new ProductBI().GetFilteredProducts, true)) + { + selectProduct.ShowDialog(); + if (selectProduct.SelectedItem != null) + AddProductToGrid(selectProduct.SelectedItem.ProductID); + } + break; + } + case Keys.F8: + { + LoadBillFromTable(); + break; + } + case Keys.F9: + { + if (dgvProducts.Rows.Count > 0) + SetAmount(CurrentProduct, -1); + break; + } + case Keys.F11: + { + btnPrintBill_Click(sender, e); + break; + } + case Keys.F12: + { + btnPrintKot_Click(sender, e); + break; + } + case Keys.Delete: + { + if (dgvProducts.Rows.Count > 0) + ProductRemove(CurrentProduct); + break; + } + case Keys.Add: + { + if (dgvProducts.Rows.Count > 0) + SetQuantity(CurrentProduct, 1, false, false); + break; + } + case Keys.Subtract: + { + if (dgvProducts.Rows.Count > 0) + SetQuantity(CurrentProduct, -1, false, false); + break; + } + case Keys.Up: + { + if ((bindingSource.Position >= 1) && (!dgvProducts.Focused)) + bindingSource.Position -= 1; + break; + } + case Keys.Down: + { + if ((bindingSource.Position < bindingSource.Count - 1) && (!dgvProducts.Focused)) + bindingSource.Position += 1; + break; + } + case Keys.Escape: + { + if (bill.Count != 0) + if (MessageBox.Show("Cancel current bill?", "Cancel bill", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) + return; + ClearBill(); + break; + } + } + #endregion + } + else + { + #region Waiting KeyDown + switch (e.KeyCode) + { + case Keys.F6: + { + ChangeFormState(SaleFormState.Billing); + break; + } + case Keys.F8: + { + LoadBillFromTable(); + break; + } + } + + #endregion + } + } + + #region Helper Functions + private void ClearBill() + { + ShowCustomerList(true); + this.billInfo = null; + this.txtBillID.Text = ""; + this.txtKotID.Text = ""; + this.txtCreationDate.Text = ""; + this.txtDate.Text = ""; + this.txtLastEditDate.Text = ""; + this.txtNarration.Text = ""; + this.txtUserID.Text = ""; + this.txtTableID.Text = ""; + this.btnWaiter.Text = "Waiter - F5"; + this.btnWaiter.Tag = null; + txtGrossTax.Text = "0.00"; + txtDiscount.Text = "0.00"; + txtGrossAmount.Text = "0.00"; + txtAmount.Text = "0.00"; + bill.Clear(); + bindingSource.DataSource = bill.Values; + ChangeFormState(SaleFormState.Waiting); + } + private void AddProductToGrid(Guid productID) + { + BillHelperFunctions.AddProductToGrid(productID, bindingSource, bill); + calculateAmount(); + } + + private void SetQuantity(SalesBillItemBO product, decimal quantity, bool absolute, bool prompt) + { + if (product == null) + return; + BillHelperFunctions.SetQuantity(product, quantity, absolute, prompt, bindingSource, bill); + calculateAmount(); + } + private void SetAmount(SalesBillItemBO product, decimal amount) + { + if (product == null) + return; + BillHelperFunctions.SetAmount(product, amount, bindingSource, bill); + calculateAmount(); + } + private void SetDiscount(SalesBillItemBO product, decimal discount) + { + if (product == null) + return; + BillHelperFunctions.SetDiscount(product.productID, discount, customer, bill); + calculateAmount(); + return; + } + private bool ProductRemove(SalesBillItemBO product) + { + if (product == null) + return false; + if (product.Printed > 0) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/EditPrintedProduct")) + { + MessageBox.Show("You are not allowed to delete already printed products"); + return false; + } + if (MessageBox.Show(string.Format("Already {0} items have been printed.\n\rAre you sure you want to delete this item?", product.Printed), "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + return false; + //If BillList(Location).Printed <> 0 Then ItemsDeleted.Add("Deleted " & BillList(Location).Printed & " " & BillList(Location).Name & " from Bill No " & mBillNo) + } + bill.Remove(new BillItemKey(product.productID, product.Printed == 0)); + calculateAmount(); + return true; + } + private void InputBox_Validating(object sender, InputBoxValidatingArgs e) + { + } + + private void button_Click(object sender, EventArgs e) + { + Button button = sender as Button; + if (button == null) + return; + Guid tag = (Guid)button.Tag; + AddProductToGrid(tag); + } + private void calculateAmount() + { + txtGrossTax.Text = string.Format("{0:#0.00}", bill.Values.Sum(b => b.TaxAmount)); + txtDiscount.Text = string.Format("{0:#0.00}", bill.Values.Sum(b => b.DiscountAmount)); + txtGrossAmount.Text = string.Format("{0:#0.00}", bill.Values.Sum(b => b.GrossAmount)); + txtAmount.Text = string.Format("{0:#0.00}", Math.Round(bill.Values.Sum(b => b.Value))); + bindingSource.DataSource = bill.Values.ToList(); + dgvProducts.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells); + } + + private void btnPrintBill_Click(object sender, EventArgs e) + { + Save(true); + } + private void btnPrintKot_Click(object sender, EventArgs e) + { + Save(false); + } + private void btnMultiPrint_Click(object sender, EventArgs e) + { + Save(true); + } + private void btnCancel_Click(object sender, EventArgs e) + { + if (bill.Count != 0) + if (MessageBox.Show("Cancel current bill?", "Cancel bill", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No) + return; + ClearBill(); + } + + private SalesBillItemBO CurrentProduct + { + get + { + if (dgvProducts.Rows.Count == 0) + return null; + SalesBillItemBO product = bill.ElementAt(dgvProducts.CurrentRow.Index).Value; + return product; + } + } + private void btnQuantity_Click(object sender, EventArgs e) + { + if (dgvProducts.Rows.Count > 0) + SetQuantity(CurrentProduct, 0, false, true); + } + private void btnDiscount_Click(object sender, EventArgs e) + { + if (dgvProducts.Rows.Count > 0) + SetDiscount(CurrentProduct, -1); + } + #endregion + + private void SalesForm_Load(object sender, EventArgs e) + { + ChangeFormState(SaleFormState.Waiting); + if (newBillID.HasValue) + { + LoadBill(newBillID.Value); + ChangeFormState(SaleFormState.Billing); + } + ControlFactory.GenerateButtons(ref pnlBilling, new Rectangle(489, 94, 481, 385), 6, 6, 2, new ProductBI().GetUnFilteredProducts(), new ButtonClickDelegate(button_Click)); + } + + private void ChangeFormState(SaleFormState state) + { + formState = state; + if (state == SaleFormState.Billing) + { + pnlWaiting.Visible = false; + pnlBilling.Visible = true; + } + else + { + pnlWaiting.Visible = true; + pnlBilling.Visible = false; + ListUnpaidBills(); + } + } + + #region Save Bill + private void Save(bool print) + { + if ((billInfo != null) && (new SaleVoucherBI().IsBillPrinted(billInfo.VoucherID)) && (!Thread.CurrentPrincipal.IsInRole("Sales/EditBill"))) + MessageBox.Show("You are not authorized to access"); + else + { + if (bill.Count != 0) + { + Guid? saved; + if (billInfo == null) + saved = AddNewSale(print); + else + saved = UpdateSale(print); + if (saved.HasValue) + { + if (newBillID.HasValue) + this.Close(); + else + PrintBill(print, saved.Value); + } + ClearBill(); + } + } + } + + private void PrintBill(bool finalBill, Guid voucherID) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/PrintKOT")) + { + MessageBox.Show("You are not authorized to access"); + return; + } + if (!finalBill) + Accounts.Print.Thermal.PrintWaiterKot("KOT", voucherID, bill.Values.ToList()); + else + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/PrintBill")) + { + MessageBox.Show("You are not authorized to access"); + return; + } + else + { + Accounts.Print.Thermal.PrintBill(true, voucherID, bill.Values.ToList()); + Accounts.Print.Thermal.PrintCustomerKot("KOT", voucherID, bill.Values.ToList()); + } + } + } + private Guid? AddNewSale(bool finalBill) + { + if (billInfo != null) + { + MessageBox.Show("Error in AddNewSale, there is a previous sale in memory", "Error"); + return null; + } + + if (btnWaiter.Tag == null) + btnWaiter.Tag = new WaiterBI().GetWaiters()[0].WaiterID; + + #region SaleVoucher + UserBO user = CurrentUser.user; + SaleVoucherBO saleVoucher = new SaleVoucherBO + { + CustomerID = customer.CustomerID, + Paid = false, + //Paid = finalBill, + TableID = txtTableID.Text, + WaiterID = (Guid)btnWaiter.Tag, + Printed = finalBill, + Void = false, + Date = DateTime.Now, + Narration = txtNarration.Text, + Ref = "", + Type = 'S', + UserID = user.UserID + }; + #endregion + #region Inventories + List iList = new SaleVoucherBI().SaleInventory(bill.Values, null); + #endregion + new SaleVoucherBI().Insert(saleVoucher, iList); + return saleVoucher.VoucherID; + + } + #region TransactionUpdate + private Guid? UpdateSale(bool finalBill) + { + if (btnWaiter.Tag == null) + btnWaiter.Tag = new WaiterBI().GetWaiters()[0].WaiterID; + + UserBO user = CurrentUser.user; + #region Voucher and SaleVoucher + SaleVoucherBO saleVoucher = new SaleVoucherBO + { + VoucherID = billInfo.VoucherID, + timestamp = (byte[])billInfo.timestamp, + UserID = billInfo.UserID, + Date = billInfo.Date, + CreationDate = DateTime.Now, + LastEditDate = DateTime.Now, + Narration = billInfo.Narration, + Ref = "", + Type = 'S', + Alarm = billInfo.Alarm, + BillID = billInfo.BillID, + CustomerID = customer.CustomerID, + KotID = billInfo.KotID, + Paid = billInfo.Paid, + Printed = billInfo.Printed || finalBill, + TableID = txtTableID.Text, + Void = billInfo.Void, + VoidReason = billInfo.VoidReason, + WaiterID = (Guid)btnWaiter.Tag, + SaleTimestamp = (byte[])billInfo.SaleTimestamp + }; + if ((!billInfo.Printed) && finalBill) + saleVoucher.Date = null; + #endregion + #region Inventory + List iList = new SaleVoucherBI().SaleInventory(bill.Values, billInfo.VoucherID); + #endregion + new SaleVoucherBI().Update(saleVoucher, iList); + return saleVoucher.VoucherID; + } + + #endregion + #endregion + + + private void LoadBillFromTable() + { + InputBoxResult result = InputBox.Show("Enter Table Number", "Table", "0", InputBox_Validating); + if (result.OK) + { + txtTableID.Text = result.Text.Trim(); + if ((txtTableID.Text != "C") && (txtTableID.Text != "") && (!txtTableID.Text.Contains("."))) + { + Guid? tID = new SaleVoucherBI().GetPendingVoucherID(txtTableID.Text); + if (tID.HasValue) + { + LoadBill(tID.Value); + ChangeFormState(SaleFormState.Billing); + } + } + else + ClearBill(); + } + } + + private void LoadBill(Guid voucherID) + { + ClearBill(); + List iList = new List(); + new SaleVoucherBI().GetSaleVoucher(voucherID, ref billInfo, ref iList); + + this.txtBillID.Text = billInfo.BillID; + this.txtKotID.Text = billInfo.KotID; + this.txtCreationDate.Text = billInfo.CreationDate.ToString("HH:mm dd-MMM-yyyy"); + this.txtDate.Text = billInfo.Date.Value.ToString("HH:mm dd-MMM-yyyy"); + this.txtLastEditDate.Text = billInfo.LastEditDate.ToString("HH:mm dd-MMM-yyyy"); + this.txtNarration.Text = billInfo.Narration; + this.txtUserID.Text = new UserBI().GetUser(billInfo.UserID).Name; + this.customer = new CustomerBI().GetCustomer(billInfo.CustomerID); + this.btnCustomer.Text = this.customer.Name; + this.txtTableID.Text = billInfo.TableID; + this.btnWaiter.Tag = billInfo.WaiterID; + this.btnWaiter.Text = string.Format("{0} - F5", new WaiterBI().GetWaiter(billInfo.WaiterID).Name); + + foreach (InventoryDisplayBO inventory in iList) + { + if (inventory.ComplexProductID.HasValue) + { + BillItemKey key = new BillItemKey(inventory.ComplexProductID.Value, inventory.Quantity == 0); + if (!bill.ContainsKey(key)) + { + decimal rate = 0, quantity = 0; + string name = ""; + new SaleVoucherBI().GetComplexBillInformation(voucherID, inventory.ComplexProductID.Value, ref rate, ref quantity, ref name); + bill.Add(key, new SalesBillItemBO + { + productID = inventory.ComplexProductID.Value, + Discount = inventory.Discount, + Name = name, + Price = rate, + Printed = quantity, + Quantity = quantity, + Tax = inventory.Tax, + }); + + } + } + else + { + BillItemKey key = new BillItemKey(inventory.ProductID, inventory.Quantity == 0); + bill.Add(key, new SalesBillItemBO + { + productID = inventory.ProductID, + Discount = inventory.Discount, + Name = inventory.ProductName, + Price = inventory.Rate, + Printed = inventory.Quantity, + Quantity = inventory.Quantity, + Tax = inventory.Tax, + }); + } + } + calculateAmount(); + + } + + #region Waiting + + private void btnStartBill_Click(object sender, EventArgs e) + { + ChangeFormState(SaleFormState.Billing); + } + + private void btnSelectBill_Click(object sender, EventArgs e) + { + if (bsPending.Current != null) + { + LoadBill(((PendingBillsBO)bsPending.Current).voucherID); + ChangeFormState(SaleFormState.Billing); + } + } + + private void tmrPending_Tick(object sender, EventArgs e) + { + if (chkRefresh.Checked) + ListUnpaidBills(); + } + + private void ListUnpaidBills() + { + lock (lockObject) + { + pendingBills = new SaleVoucherBI().GetPendingBills(pendingList); + bsPending.DataSource = pendingBills; + List alarmBills = new SaleVoucherBI().GetPendingBills(PendingType.Alarms).OrderBy(b => b.AlarmTime).ToList(); + if (alarmBills.Count > 0) + { + PendingBillsBO al = alarmBills.First(); + double seconds = al.AlarmTime.Value.Subtract(DateTime.Now).TotalSeconds; + if (seconds <= 0) + lblUser.Text = string.Format("Alarm {0:hh:MM}", al.AlarmTime); + else + lblUser.Text = CurrentUser.user.Name; + } + else + { + lblUser.Text = CurrentUser.user.Name; + } + } + } + + private void dgvPending_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + try + { + DataGridView dgv = sender as DataGridView; + PendingBillsBO data = dgv.Rows[e.RowIndex].DataBoundItem as PendingBillsBO; + if (data.Printed) + e.CellStyle.BackColor = Color.LightSlateGray; + } + catch + { + // Catch and swallow exception when DataGridView attemps to get values for removed rows. + } + } + + private void tcPending_SelectedIndexChanged(object sender, EventArgs e) + { + switch (tcPending.SelectedTab.Text) + { + case "Today": + pendingList = PendingType.Today; + break; + case "Week": + pendingList = PendingType.Week; + break; + case "All": + pendingList = PendingType.All; + break; + case "Important": + pendingList = PendingType.Important; + break; + case "Alarms": + pendingList = PendingType.Alarms; + break; + } + ListUnpaidBills(); + } + + private void dgvPending_CellValuePushed(object sender, DataGridViewCellValueEventArgs e) + { + if (e.ColumnIndex != 0) return; + if ((bool)e.Value) + selectedBills.Add(pendingBills[e.RowIndex].voucherID); + else + selectedBills.Remove(pendingBills[e.RowIndex].voucherID); + } + + private void dgvPending_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) + { + if (e.ColumnIndex != 0) return; + if (e.RowIndex > pendingBills.Count - 1) return; + e.Value = selectedBills.Contains(pendingBills.ElementAt(e.RowIndex).voucherID); + } + #endregion + + #region Billing + private void btnCustomer_Click(object sender, EventArgs e) + { + ShowCustomerList(false); + } + + private void ShowCustomerList(bool reset) + { + if ((customer.CustomerID == new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")) && (!reset)) + { + using (SelectCustomer selectCustomer = new SelectCustomer(new CustomerBI().GetFilteredCustomers, true)) + { + selectCustomer.customerEvent += new CustomerEventHandler(selectCustomer_customerEvent); + selectCustomer.ShowDialog(); + if (selectCustomer.SelectedItem != null) + { + customer = selectCustomer.SelectedItem; + btnCustomer.Text = customer.Name; + } + else + { + customer = new CustomerBI().GetCustomer(new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")); + } + } + } + else + { + customer = new CustomerBI().GetCustomer(new Guid("F016CBAD-206C-42C0-BB1D-6006CE57BAB5")); + btnCustomer.Text = customer.Name; + } + } + + CustomerBO selectCustomer_customerEvent(object sender, CustomerEventArgs e) + { + using (CustomersForm form = new CustomersForm(e.CustomerID, e.Phone)) + { + form.ShowDialog(); + return form.Customer; + } + } + + #endregion + + + private void dgvPending_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + if ((dgvProducts.Rows.Count > 0) && (dgvPending.CurrentRow != null)) + { + LoadBill(((PendingBillsBO)bsPending.Current).voucherID); + ChangeFormState(SaleFormState.Billing); + } + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + ListUnpaidBills(); + } + + private void btnVoid_Click(object sender, EventArgs e) + { + if (billInfo != null) + { + if ((billInfo.Printed) && (!Thread.CurrentPrincipal.IsInRole("Sales/VoidPrintedBill"))) + MessageBox.Show("Cannot void a paid bill"); + else if (MessageBox.Show("Are you sure you want to void this bill?", "Void Bill", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) + { + SelectVoidReason voidReason = new SelectVoidReason(GetVoidReason, true); + voidReason.ShowDialog(); + if (voidReason.SelectedItem != null) + { + new SaleVoucherBI().VoidBill(billInfo.VoucherID, voidReason.SelectedItem.Description); + ClearBill(); + } + else + { + MessageBox.Show("Please Select a reason if you want to void the bill", "Bill NOT Voided", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + } + } + } + + private List GetVoidReason(Dictionary filter) + { + List list = new List(); + list.Add(new StringType("Discount")); + list.Add(new StringType("Printing Fault")); + list.Add(new StringType("Item Changed")); + list.Add(new StringType("Quantity Reduced")); + list.Add(new StringType("Costing Bill for Party")); + list.Add(new StringType("Cashier Mistake")); + list.Add(new StringType("Management Freesale")); + list.Add(new StringType("Other")); + return list.Where(i => i.Description.ToLower().Contains(filter["Name"].ToLower().Trim())).ToList(); + } + private void btnRate_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Sales/ChangeRate")) + MessageBox.Show("You are not authorized to access"); + else + { + if (dgvProducts.Rows.Count > 0) + { + SalesBillItemBO product = bill.ElementAt(dgvProducts.CurrentRow.Index).Value; + decimal rate = 0; + InputBoxResult result = InputBox.Show("Enter Rate", "Rate", product.Price.ToString(), InputBox_Validating); + if (result.OK) + rate = Convert.ToDecimal(result.Text); + if (rate != 0) + { + BillHelperFunctions.SetRate(product.productID, rate, bill); + calculateAmount(); + } + } + } + } + + private void btnClear_Click(object sender, EventArgs e) + { + ClearBill(); + } + + private void btnPaidCash_Click(object sender, EventArgs e) + { + UserBO user = CurrentUser.user; + new SaleVoucherBI().DeclareBillsPaid(user.UserID, selectedBills, false); + ListUnpaidBills(); + } + + private void btnPaidCC_Click(object sender, EventArgs e) + { + UserBO user = CurrentUser.user; + new SaleVoucherBI().DeclareBillsPaid(user.UserID, selectedBills, true); + ListUnpaidBills(); + } + + private void btnAlarm_Click(object sender, EventArgs e) + { + if (bsPending.Current != null) + { + PendingBillsBO billAlarm = (PendingBillsBO)bsPending.Current; + InputBoxResult result = InputBox.Show( + string.Format("Alarm for Bill {0} Rs. {1}", billAlarm.BillNo, billAlarm.Amount), + "Alarm", + string.Format("{0:dd-MMM-yyy HH:mm}", billAlarm.LastEdited), + InputBox_Validating); + if (result.OK) + { + DateTime alarmTime; + if (result.Text == string.Empty) + { + new SaleVoucherBI().SetAlarm(billAlarm.voucherID, null); + MessageBox.Show("Alarm Cleared", "Alarm Cleared", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else if (DateTime.TryParseExact(result.Text, "dd-MMM-yyyy HH:mm", new CultureInfo("en-US"), DateTimeStyles.None, out alarmTime)) + { + new SaleVoucherBI().SetAlarm(billAlarm.voucherID, alarmTime); + MessageBox.Show("Alarm set", "Alarm Set", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Alarm NOT set, please try again", "Alarm NOT Set", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } + + private void btnBillList_Click(object sender, EventArgs e) + { + //if (!Thread.CurrentPrincipal.IsInRole("Security/CreateUser")) + // return; + //#region Filters + //decimal? minValue = 0, maxValue = 0; + //decimal valTemp; + //DateTime? fromDate = DateTime.Now, toDate = DateTime.Now; // used in filters + //DateTime dateTemp; + //bool? showVoided; + + //InputBoxResult result = InputBox.Show("Start Date", "Start Date", string.Format("{0:dd-MMM-yyy}", fromDate), InputBox_Validating); + //if ((result.OK) && (DateTime.TryParseExact(result.Text, "dd-MMM-yyyy", new CultureInfo("en-US"), DateTimeStyles.None, out dateTemp))) + //{ + // fromDate = dateTemp; + //} + //result = InputBox.Show("Finish Date", "Finish Date", string.Format("{0:dd-MMM-yyy}", toDate), InputBox_Validating); + //if ((result.OK) && (DateTime.TryParseExact(result.Text, "dd-MMM-yyyy", new CultureInfo("en-US"), DateTimeStyles.None, out dateTemp))) + //{ + // toDate = dateTemp; + //} + //result = InputBox.Show("Minimum Value", "Minimum Value", "0", InputBox_Validating); + //if ((result.OK) && (decimal.TryParse(result.Text, out valTemp))) + //{ + // minValue = valTemp; + //} + //result = InputBox.Show("Maximum Value", "Maximum Value", "0", InputBox_Validating); + //if ((result.OK) && (decimal.TryParse(result.Text, out valTemp))) + //{ + // maxValue = valTemp; + //} + //DialogResult dResult = MessageBox.Show("Show Un-Voided Bills only", "Un-Voided", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + //if (dResult == DialogResult.Yes) + // showVoided = false; + //else if (dResult == DialogResult.No) + // showVoided = true; + //else + // showVoided = null; + //#endregion + //List billList = ManagementBI.GetBillList(fromDate, toDate, minValue, maxValue, showVoided); + //using (SelectBill selectBill = new SelectBill(billList, true)) + //{ + // selectBill.ShowDialog(); + // if (selectBill.SelectedItem != null) + // { + // LoadBill(selectBill.SelectedItem.voucherID); + // ChangeFormState(SaleFormState.Billing); + + // } + //} + } + + private void btnImportant_Click(object sender, EventArgs e) + { + if (bsPending.Current == null) + return; + if (MessageBox.Show("Are you sure?", "Mark / UnMark Important", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + return; + PendingBillsBO billAlarm = (PendingBillsBO)bsPending.Current; + new SaleVoucherBI().ToggleImportant(billAlarm.voucherID); + ListUnpaidBills(); + } + + private void dgvProducts_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + DataGridView dgv = sender as DataGridView; + SalesBillItemBO data = dgv.Rows[e.RowIndex].DataBoundItem as SalesBillItemBO; + + if (data.Printed > 0) + { + e.CellStyle.SelectionBackColor = Color.HotPink; + e.CellStyle.BackColor = Color.LightPink; + } + else + { + e.CellStyle.SelectionBackColor = Color.Green; + e.CellStyle.BackColor = Color.LightGreen; + } + } + + private void btnWaiter_Click(object sender, EventArgs e) + { + using (SelectWaiter selectWaiter = new SelectWaiter(new WaiterBI().GetFilteredWaiters, true)) + { + selectWaiter.waiterEvent += new WaiterEventHandler(selectWaiter_waiterEvent); + selectWaiter.ShowDialog(); + if (selectWaiter.SelectedItem != null) + { + btnWaiter.Text = string.Format("{0} - F5", selectWaiter.SelectedItem.Name); + btnWaiter.Tag = selectWaiter.SelectedItem.WaiterID; + } + else + { + btnWaiter.Text = "Select Waiter - F5"; + btnWaiter.Tag = new WaiterBI().GetWaiters()[0].WaiterID; + } + } + } + WaiterBO selectWaiter_waiterEvent(object sender, WaiterEventArgs e) + { + WaiterBO waiter = e.Waiter; + if (!Thread.CurrentPrincipal.IsInRole("Waiter/Master")) + return waiter; + + switch (e.Action) + { + case 1: // Add + new WaiterBI().Insert(waiter); + e.Handled = true; + return waiter; + case 2: // Edit + new WaiterBI().Update(waiter); + e.Handled = true; + return waiter; + case 3: // Delete + e.Handled = new WaiterBI().Delete(waiter.WaiterID); + return new WaiterBI().GetWaiter(1); + default: + throw new ArgumentException(); + } + } + + private void pnlWaiting_Paint(object sender, PaintEventArgs e) + { + + } + } +} + + diff --git a/Tanshu.Accounts.PointOfSale/Sales/SalesForm.resx b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.resx new file mode 100644 index 0000000..bd67484 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 148, 17 + + + 248, 17 + + + 357, 17 + + + True + + + True + + + True + + + 81 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Script.txt b/Tanshu.Accounts.PointOfSale/Script.txt new file mode 100644 index 0000000..e749bef --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Script.txt @@ -0,0 +1,154 @@ +CREATE TABLE [dbo].[ComplexProducts]( + [ComplexProductID] [uniqueidentifier] NOT NULL, + [ProductID] [uniqueidentifier] NOT NULL, + [ChildID] [uniqueidentifier] NOT NULL, + [Quantity] [decimal](18, 5) NOT NULL, + [timestamp] [timestamp] NOT NULL, + CONSTRAINT [PK_ComplexProducts] PRIMARY KEY CLUSTERED +( + [ComplexProductID] ASC +)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] +) ON [PRIMARY] + + + + + + +CREATE TABLE [dbo].[ComplexProducts_tracking]( + [ComplexProductID] [uniqueidentifier] NOT NULL, + [sync_row_is_tombstone] [int] NULL DEFAULT ((0)), + [sync_row_timestamp] [timestamp] NOT NULL, + [sync_update_peer_key] [int] NULL DEFAULT ((0)), + [sync_update_peer_timestamp] [bigint] NULL, + [sync_create_peer_key] [int] NULL DEFAULT ((0)), + [sync_create_peer_timestamp] [bigint] NULL, + [last_change_datetime] [datetime] NULL DEFAULT (getdate()), +PRIMARY KEY CLUSTERED +( + [ComplexProductID] ASC +)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] +) ON [PRIMARY] + +Alter table Products add [IsComplex] [bit] NOT NULL DEFAULT((0)) + +---------------- Before 18 Jul 2008 --------------------- + +Insert into Roles (Role, Description, CompanyID) Values('Master/Products','Allow user to access product form','7860acfb-e03e-4af5-8a5f-91186921da2d') + + +CREATE TABLE [dbo].[ProductRates]( + [Id] [uniqueidentifier] NOT NULL CONSTRAINT [DF_ProductRates_Id] DEFAULT (newid()), + [ProductID] [uniqueidentifier] NULL, + [NewRate] [decimal](18, 5) NULL, + [UserID] [uniqueidentifier] NULL, + [Date] [datetime] NULL, + [timestamp] [timestamp] NULL, + CONSTRAINT [PK_ProductRates] PRIMARY KEY CLUSTERED +( + [Id] ASC +)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] +) ON [PRIMARY] + + + +CREATE TABLE [dbo].[ProductRates_tracking]( + [ID] [uniqueidentifier] NOT NULL, + [sync_row_is_tombstone] [int] NULL DEFAULT ((0)), + [sync_row_timestamp] [timestamp] NOT NULL, + [sync_update_peer_key] [int] NULL DEFAULT ((0)), + [sync_update_peer_timestamp] [bigint] NULL, + [sync_create_peer_key] [int] NULL DEFAULT ((0)), + [sync_create_peer_timestamp] [bigint] NULL, + [last_change_datetime] [datetime] NULL DEFAULT (getdate()), +PRIMARY KEY CLUSTERED +( + [ID] ASC +)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] +) ON [PRIMARY] + + + + +Alter Table TransactionSale Add [CreditCard] [bit] NOT NULL CONSTRAINT [DF_TransactionSale_CreditCard] DEFAULT ((0)) + + + + + + + + + + + + + + + + + + + + + + +-----------Paid Update-------------------- + + + + +set ANSI_NULLS ON +set QUOTED_IDENTIFIER ON +go + + +ALTER PROCEDURE [dbo].[TransactionSale_Update] +( + @TransactionID uniqueidentifier, + @BillID nvarchar(10) OUTPUT, + @TableID nvarchar(10), + @WaiterID uniqueidentifier, + @CustomerID uniqueidentifier, + @Paid bit, + @Void bit, + @VoidReason nvarchar(50), + @Printed bit OUTPUT, + @Alarm datetime, + @KotID nvarchar(10) OUTPUT, + @CompanyID uniqueidentifier, + @timestamp timestamp OUTPUT + ) +AS +BEGIN + IF @Printed = 1 AND (SELECT Printed FROM TransactionSale WHERE TransactionID = @TransactionID) = 0 + BEGIN + SELECT @BillID = ISNULL(CAST(MAX(CAST(REPLACE(BillID, '-', '') AS int)) + 1 AS nvarchar(9)), '010001') FROM TransactionSale WHERE BillID LIKE '__-____' + IF LEN(@BillID) = 5 + SET @BillID = '0' + @BillID + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-' + SUBSTRING(@BillID, 3, 7) + IF SUBSTRING(@BillID,3,7) = '-0000' + SET @BillID = SUBSTRING(@BillID, 1, 2) + '-0001' + END + IF (SELECT Printed FROM TransactionSale WHERE TransactionID = @TransactionID) = 1 + SET @Printed = 1 + UPDATE [dbo].[TransactionSale] SET + [BillID] = @BillID, + [TableID] = @TableID, + [WaiterID] = @WaiterID, + [CustomerID] = @CustomerID, + [Paid] = @Paid, + [Void] = @Void, + [VoidReason] = @VoidReason, + [Printed] = @Printed, + [Alarm] = @Alarm, + [KotID] = @KotID, + [CompanyID] = @CompanyID + WHERE TransactionID = @TransactionID + +Update BasicTransactions Set LastEditDate=GetDate() WHERE TransactionID = @TransactionID + + SELECT @timestamp = timestamp FROM [dbo].[TransactionSale] WHERE TransactionID = @TransactionID +END + + diff --git a/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj new file mode 100644 index 0000000..e33a00f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj @@ -0,0 +1,334 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4} + WinExe + Properties + Tanshu.Accounts.PointOfSale + Tanshu.Accounts.PointOfSale + v3.5 + 512 + Resources\burger.ico + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + 3.5 + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + False + ..\Include\Tanshu.Common.dll + + + False + ..\Include\Tanshu.Data.dll + + + False + ..\Include\Tanshu.Logging.dll + + + + + + Form + + + PaymentForm.cs + + + Form + + + AdjustAdvanceForm.cs + + + Form + + + ReplaceForm.cs + + + Form + + + SaleTaxReportForm.cs + + + Form + + + UpdateForm.cs + + + Form + + + UpdateSales.cs + + + Form + + + AssignRoles.cs + + + Form + + + ChangePassword.cs + + + Form + + + CheckoutForm.cs + + + + Form + + + CustomersForm.cs + + + Form + + + LoginForm.cs + + + Form + + + MainForm.cs + + + + Form + + + UserForm.cs + + + Form + + + LogViewerForm.cs + + + Form + + + ProductsForm.cs + + + Form + + + ProductTypes.cs + + + + + PaymentForm.cs + Designer + + + AdjustAdvanceForm.cs + Designer + + + ReplaceForm.cs + Designer + + + SaleTaxReportForm.cs + Designer + + + UpdateForm.cs + Designer + + + UpdateSales.cs + Designer + + + AssignRoles.cs + Designer + + + ChangePassword.cs + Designer + + + CheckoutForm.cs + Designer + + + CustomersForm.cs + Designer + + + LoginForm.cs + Designer + + + MainForm.cs + Designer + + + UserForm.cs + Designer + + + LogViewerForm.cs + Designer + + + ProductsForm.cs + Designer + + + ProductTypes.cs + Designer + + + RecieveAdvanceForm.cs + Designer + + + SaleAnalysisForm.cs + Designer + + + SalesForm.cs + Designer + + + + Form + + + RecieveAdvanceForm.cs + + + Form + + + SaleAnalysisForm.cs + + + Form + + + SalesForm.cs + + + + + + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + Windows Installer 3.1 + true + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB} + Tanshu.Accounts.BI + + + {3E28AAA5-A493-4446-8188-C615245943B4} + Tanshu.Accounts.Helpers + + + {90C9D02C-91AF-4529-86BE-28320332DDB5} + Tanshu.Accounts.Print + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj.user b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj.user new file mode 100644 index 0000000..a1d742b --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj.user @@ -0,0 +1,5 @@ + + + ProjectFiles + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.Designer.cs new file mode 100644 index 0000000..892f979 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.Designer.cs @@ -0,0 +1,183 @@ +namespace Accounts.PointOfSale +{ + partial class AutoUpdateForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.btnGo = new System.Windows.Forms.Button(); + this.txtTwelve = new System.Windows.Forms.TextBox(); + this.txtFour = new System.Windows.Forms.TextBox(); + this.txtZero = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.txtFourSize = new System.Windows.Forms.TextBox(); + this.txtZeroSize = new System.Windows.Forms.TextBox(); + this.txtTwelveSize = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // dtpFrom + // + this.dtpFrom.Location = new System.Drawing.Point(12, 12); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(268, 20); + this.dtpFrom.TabIndex = 0; + // + // dtpTo + // + this.dtpTo.Location = new System.Drawing.Point(12, 38); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(268, 20); + this.dtpTo.TabIndex = 1; + // + // btnGo + // + this.btnGo.Location = new System.Drawing.Point(12, 142); + this.btnGo.Name = "btnGo"; + this.btnGo.Size = new System.Drawing.Size(268, 23); + this.btnGo.TabIndex = 5; + this.btnGo.Text = "Go"; + this.btnGo.UseVisualStyleBackColor = true; + this.btnGo.Click += new System.EventHandler(this.btnGo_Click); + // + // txtTwelve + // + this.txtTwelve.Location = new System.Drawing.Point(50, 116); + this.txtTwelve.Name = "txtTwelve"; + this.txtTwelve.Size = new System.Drawing.Size(152, 20); + this.txtTwelve.TabIndex = 4; + this.txtTwelve.Text = "0"; + // + // txtFour + // + this.txtFour.Location = new System.Drawing.Point(50, 90); + this.txtFour.Name = "txtFour"; + this.txtFour.Size = new System.Drawing.Size(152, 20); + this.txtFour.TabIndex = 3; + this.txtFour.Text = "0"; + // + // txtZero + // + this.txtZero.Location = new System.Drawing.Point(50, 64); + this.txtZero.Name = "txtZero"; + this.txtZero.Size = new System.Drawing.Size(152, 20); + this.txtZero.TabIndex = 2; + this.txtZero.Text = "0"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 67); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(21, 13); + this.label1.TabIndex = 6; + this.label1.Text = "0%"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 93); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(21, 13); + this.label2.TabIndex = 7; + this.label2.Text = "4%"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 119); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 8; + this.label3.Text = "12.5%"; + // + // txtFourSize + // + this.txtFourSize.Location = new System.Drawing.Point(208, 90); + this.txtFourSize.Name = "txtFourSize"; + this.txtFourSize.Size = new System.Drawing.Size(72, 20); + this.txtFourSize.TabIndex = 9; + this.txtFourSize.Text = "3000"; + // + // txtZeroSize + // + this.txtZeroSize.Location = new System.Drawing.Point(208, 64); + this.txtZeroSize.Name = "txtZeroSize"; + this.txtZeroSize.Size = new System.Drawing.Size(72, 20); + this.txtZeroSize.TabIndex = 10; + this.txtZeroSize.Text = "5000"; + // + // txtTwelveSize + // + this.txtTwelveSize.Location = new System.Drawing.Point(208, 116); + this.txtTwelveSize.Name = "txtTwelveSize"; + this.txtTwelveSize.Size = new System.Drawing.Size(72, 20); + this.txtTwelveSize.TabIndex = 11; + this.txtTwelveSize.Text = "2000"; + // + // AutoUpdateForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 177); + this.Controls.Add(this.txtTwelveSize); + this.Controls.Add(this.txtZeroSize); + this.Controls.Add(this.txtFourSize); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtZero); + this.Controls.Add(this.txtFour); + this.Controls.Add(this.txtTwelve); + this.Controls.Add(this.btnGo); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.Name = "AutoUpdateForm"; + this.Text = "UpdateForm"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DateTimePicker dtpTo; + private System.Windows.Forms.Button btnGo; + private System.Windows.Forms.TextBox txtTwelve; + private System.Windows.Forms.TextBox txtFour; + private System.Windows.Forms.TextBox txtZero; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtFourSize; + private System.Windows.Forms.TextBox txtZeroSize; + private System.Windows.Forms.TextBox txtTwelveSize; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.cs b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.cs new file mode 100644 index 0000000..6a4d3b4 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using System.Threading; +using Tanshu.Accounts.BI; + +namespace Accounts.PointOfSale +{ + public partial class AutoUpdateForm : Form + { + public AutoUpdateForm() + { + InitializeComponent(); + } + + private void btnGo_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Security/CreateUser")) + return; + decimal myDecimal; + if (decimal.TryParse(txtTwelve.Text, out myDecimal)) + Process(myDecimal, .125M, Convert.ToDecimal(txtTwelveSize.Text)); + if (decimal.TryParse(txtFour.Text, out myDecimal)) + Process(myDecimal, .04M, Convert.ToDecimal(txtFourSize.Text)); + if (decimal.TryParse(txtZero.Text, out myDecimal)) + Process(myDecimal, 0M, Convert.ToDecimal(txtZeroSize.Text)); + } + private void Process(decimal target, decimal tax, decimal averageSize) + { + return; + //if (target == 0) + // return; + //decimal existing; + //int work, runner = 0; + + //ManagementBI man = new ManagementBI(); + ////dc.CommandTimeout = 5000; + //List list = man.GetBillList(dtpFrom.Value, dtpTo.Value); + //existing = man.GetBalance(tax, dtpFrom.Value, dtpTo.Value); + //work = Convert.ToInt32(Math.Floor((list.Count() * averageSize) / (target - existing))); + //while (existing < target) + //{ + // if (MessageBox.Show(string.Format("Total Increase needed is {0}", target - existing), "Balance", MessageBoxButtons.OKCancel) == DialogResult.OK) + // { + // runner += 1; + // SalesForm mySaleForm = new SalesForm(list[(runner * work) + 1]); + // mySaleForm.ShowDialog(); + // mySaleForm.Dispose(); + // } + // else + // return; + // existing = man.GetBalance(target, tax); + //} + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.resx b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/AutoUpdateForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.Designer.cs new file mode 100644 index 0000000..95f058d --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.Designer.cs @@ -0,0 +1,254 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class ReplaceForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.btnGo = new System.Windows.Forms.Button(); + this.txtTwelve1 = new System.Windows.Forms.TextBox(); + this.txtFour1 = new System.Windows.Forms.TextBox(); + this.txtZero1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.txtStatus = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.txtZero2 = new System.Windows.Forms.TextBox(); + this.txtFour2 = new System.Windows.Forms.TextBox(); + this.txtTwelve2 = new System.Windows.Forms.TextBox(); + this.txtOne = new System.Windows.Forms.TextBox(); + this.txtTwo = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // dtpFrom + // + this.dtpFrom.Location = new System.Drawing.Point(12, 12); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(268, 20); + this.dtpFrom.TabIndex = 0; + this.dtpFrom.Value = new System.DateTime(2009, 12, 1, 0, 0, 0, 0); + // + // dtpTo + // + this.dtpTo.Location = new System.Drawing.Point(286, 12); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(268, 20); + this.dtpTo.TabIndex = 1; + this.dtpTo.Value = new System.DateTime(2009, 12, 31, 23, 59, 59, 0); + // + // btnGo + // + this.btnGo.Location = new System.Drawing.Point(12, 142); + this.btnGo.Name = "btnGo"; + this.btnGo.Size = new System.Drawing.Size(542, 23); + this.btnGo.TabIndex = 5; + this.btnGo.Text = "Go"; + this.btnGo.UseVisualStyleBackColor = true; + this.btnGo.Click += new System.EventHandler(this.btnGo_Click); + // + // txtTwelve1 + // + this.txtTwelve1.Location = new System.Drawing.Point(50, 116); + this.txtTwelve1.Name = "txtTwelve1"; + this.txtTwelve1.Size = new System.Drawing.Size(230, 20); + this.txtTwelve1.TabIndex = 4; + this.txtTwelve1.Text = "0"; + // + // txtFour1 + // + this.txtFour1.Location = new System.Drawing.Point(50, 90); + this.txtFour1.Name = "txtFour1"; + this.txtFour1.Size = new System.Drawing.Size(230, 20); + this.txtFour1.TabIndex = 3; + this.txtFour1.Text = "0"; + // + // txtZero1 + // + this.txtZero1.Location = new System.Drawing.Point(50, 64); + this.txtZero1.Name = "txtZero1"; + this.txtZero1.Size = new System.Drawing.Size(230, 20); + this.txtZero1.TabIndex = 2; + this.txtZero1.Text = "0"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 67); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(21, 13); + this.label1.TabIndex = 6; + this.label1.Text = "0%"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 93); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(21, 13); + this.label2.TabIndex = 7; + this.label2.Text = "4%"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 119); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 8; + this.label3.Text = "12.5%"; + // + // txtStatus + // + this.txtStatus.Location = new System.Drawing.Point(12, 171); + this.txtStatus.Name = "txtStatus"; + this.txtStatus.ReadOnly = true; + this.txtStatus.Size = new System.Drawing.Size(542, 20); + this.txtStatus.TabIndex = 9; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(286, 119); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(36, 13); + this.label4.TabIndex = 15; + this.label4.Text = "12.5%"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(286, 93); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(21, 13); + this.label5.TabIndex = 14; + this.label5.Text = "4%"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(286, 67); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(21, 13); + this.label6.TabIndex = 13; + this.label6.Text = "0%"; + // + // txtZero2 + // + this.txtZero2.Location = new System.Drawing.Point(324, 64); + this.txtZero2.Name = "txtZero2"; + this.txtZero2.Size = new System.Drawing.Size(230, 20); + this.txtZero2.TabIndex = 10; + this.txtZero2.Text = "0"; + // + // txtFour2 + // + this.txtFour2.Location = new System.Drawing.Point(324, 90); + this.txtFour2.Name = "txtFour2"; + this.txtFour2.Size = new System.Drawing.Size(230, 20); + this.txtFour2.TabIndex = 11; + this.txtFour2.Text = "0"; + // + // txtTwelve2 + // + this.txtTwelve2.Location = new System.Drawing.Point(324, 116); + this.txtTwelve2.Name = "txtTwelve2"; + this.txtTwelve2.Size = new System.Drawing.Size(230, 20); + this.txtTwelve2.TabIndex = 12; + this.txtTwelve2.Text = "0"; + // + // txtOne + // + this.txtOne.Location = new System.Drawing.Point(12, 38); + this.txtOne.Name = "txtOne"; + this.txtOne.Size = new System.Drawing.Size(268, 20); + this.txtOne.TabIndex = 16; + this.txtOne.Text = "AccountsGF"; + // + // txtTwo + // + this.txtTwo.Location = new System.Drawing.Point(286, 38); + this.txtTwo.Name = "txtTwo"; + this.txtTwo.Size = new System.Drawing.Size(268, 20); + this.txtTwo.TabIndex = 17; + this.txtTwo.Text = "AccountsFF"; + // + // ReplaceForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(566, 203); + this.Controls.Add(this.txtTwo); + this.Controls.Add(this.txtOne); + this.Controls.Add(this.label4); + this.Controls.Add(this.label5); + this.Controls.Add(this.label6); + this.Controls.Add(this.txtZero2); + this.Controls.Add(this.txtFour2); + this.Controls.Add(this.txtTwelve2); + this.Controls.Add(this.txtStatus); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtZero1); + this.Controls.Add(this.txtFour1); + this.Controls.Add(this.txtTwelve1); + this.Controls.Add(this.btnGo); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.Name = "ReplaceForm"; + this.Text = "UpdateForm"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DateTimePicker dtpTo; + private System.Windows.Forms.Button btnGo; + private System.Windows.Forms.TextBox txtTwelve1; + private System.Windows.Forms.TextBox txtFour1; + private System.Windows.Forms.TextBox txtZero1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtStatus; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox txtZero2; + private System.Windows.Forms.TextBox txtFour2; + private System.Windows.Forms.TextBox txtTwelve2; + private System.Windows.Forms.TextBox txtOne; + private System.Windows.Forms.TextBox txtTwo; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.cs b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.cs new file mode 100644 index 0000000..bba3eba --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.cs @@ -0,0 +1,71 @@ +using System; +using System.Linq; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using System.Collections.Generic; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using System.Data.SqlClient; +using System.Configuration; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class ReplaceForm : Form + { + public ReplaceForm() + { + InitializeComponent(); + } + + private void btnGo_Click(object sender, EventArgs e) + { + if (!Thread.CurrentPrincipal.IsInRole("Security/CreateUser")) + return; + dtpFrom.Value = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", dtpFrom.Value)); + dtpTo.Value = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", dtpTo.Value)); + + string query = string.Empty; + if (txtStatus.Text == "") + { + txtZero1.Text = GetBalance(0M, txtOne.Text, dtpFrom.Value, dtpTo.Value).ToString(); + txtFour1.Text = GetBalance(.04M, txtOne.Text, dtpFrom.Value, dtpTo.Value).ToString(); + txtTwelve1.Text = GetBalance(0.125M, txtOne.Text, dtpFrom.Value, dtpTo.Value).ToString(); + + txtZero2.Text = GetBalance(0M, txtTwo.Text, dtpFrom.Value, dtpTo.Value).ToString(); + txtFour2.Text = GetBalance(.04M, txtTwo.Text, dtpFrom.Value, dtpTo.Value).ToString(); + txtTwelve2.Text = GetBalance(0.125M, txtTwo.Text, dtpFrom.Value, dtpTo.Value).ToString(); + txtStatus.Text = "Initial Values Loaded"; + } + else + { + Update(txtOne.Text, txtTwo.Text, dtpFrom.Value, dtpTo.Value); + MessageBox.Show("Data Merged"); + } + } + private decimal GetBalance(decimal tax, string database, DateTime startDate, DateTime finishDate) + { + string query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM {0}.dbo.Vouchers t INNER JOIN {0}.dbo.SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN {0}.dbo.Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' AND t.Date BETWEEN @StartDate AND @FinishDate AND s.Void = 0 AND s.Paid = 1 +AND i.Tax = @Tax +"; + using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString)) + { + con.Open(); + using (SqlCommand cmd = new SqlCommand(string.Format(query, database), con)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@Tax", tax); + return (decimal)cmd.ExecuteScalar(); + } + } + } + private bool Update(string sourceDB, string targetDB, DateTime startDate, DateTime finishDate) + { + return new ManagementBI().MergeData(startDate, finishDate, sourceDB, targetDB); + } + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.resx b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/ReplaceForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.cs b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.cs new file mode 100644 index 0000000..08f724f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Data.SqlClient; +using System.Configuration; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class SaleTaxReportForm : Form + { + List det; + public SaleTaxReportForm() + { + InitializeComponent(); + } + + private void dtpStart_ValueChanged(object sender, EventArgs e) + { + ShowStatement(); + } + + private void ShowStatement() + { + DateTime startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); + DateTime finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); + + decimal freeSale = 0, voids = 0, pending = 0, net = 0, tax = 0; + det = new SalesAnalysisBI().GetSalesTaxReturn(startDate, finishDate, ref freeSale, ref voids, ref pending, ref net, ref tax); + + //dc.CommandTimeout = 50000; + dgvSale.AutoGenerateColumns = true; + dgvSale.DataSource = det; + dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + dgvSale.Columns[0].Visible = false; + dgvSale.Columns[1].DefaultCellStyle.Format = "%"; + dgvSale.Columns[2].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + dgvSale.Columns[3].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + dgvSale.Columns[4].DefaultCellStyle.Format = "#,##0.00;(#,##0.00);0"; + + // txtFreeSale.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", freeSale); + txtVoid.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", voids); + txtPending.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", pending); + txtNet.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", net); + txtTax.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", tax); + txtGross.Text = String.Format("{0:#,##0.00;(#,##0.00);0}", net + tax); + } + + private void dtpFinish_ValueChanged(object sender, EventArgs e) + { + ShowStatement(); + } + + private void Sale_Analysis_Form_Load(object sender, EventArgs e) + { + dtpStart.Value = DateTime.Now; + dtpFinish.Value = DateTime.Now; + ShowStatement(); + } + + private void btnPrint_Click(object sender, EventArgs e) + { + if (det != null) + { + DateTime startDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 00:00:00", dtpStart.Value)); + DateTime finishDate = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); + Tanshu.Accounts.Print.Thermal.PrintSale(det, startDate, finishDate); + } + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.designer.cs b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.designer.cs new file mode 100644 index 0000000..df26e9f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.designer.cs @@ -0,0 +1,239 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class SaleTaxReportForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtNet = new System.Windows.Forms.TextBox(); + this.txtTax = new System.Windows.Forms.TextBox(); + this.txtGross = new System.Windows.Forms.TextBox(); + this.txtPending = new System.Windows.Forms.TextBox(); + this.txtVoid = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.dgvSale = new System.Windows.Forms.DataGridView(); + this.dtpFinish = new System.Windows.Forms.DateTimePicker(); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.label10 = new System.Windows.Forms.Label(); + this.btnPrint = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSale)).BeginInit(); + this.SuspendLayout(); + // + // txtNet + // + this.txtNet.Location = new System.Drawing.Point(224, 487); + this.txtNet.Name = "txtNet"; + this.txtNet.ReadOnly = true; + this.txtNet.Size = new System.Drawing.Size(100, 20); + this.txtNet.TabIndex = 17; + // + // txtTax + // + this.txtTax.Location = new System.Drawing.Point(330, 487); + this.txtTax.Name = "txtTax"; + this.txtTax.ReadOnly = true; + this.txtTax.Size = new System.Drawing.Size(100, 20); + this.txtTax.TabIndex = 18; + // + // txtGross + // + this.txtGross.Location = new System.Drawing.Point(436, 487); + this.txtGross.Name = "txtGross"; + this.txtGross.ReadOnly = true; + this.txtGross.Size = new System.Drawing.Size(100, 20); + this.txtGross.TabIndex = 19; + // + // txtPending + // + this.txtPending.Location = new System.Drawing.Point(118, 487); + this.txtPending.Name = "txtPending"; + this.txtPending.ReadOnly = true; + this.txtPending.Size = new System.Drawing.Size(100, 20); + this.txtPending.TabIndex = 16; + // + // txtVoid + // + this.txtVoid.Location = new System.Drawing.Point(12, 487); + this.txtVoid.Name = "txtVoid"; + this.txtVoid.ReadOnly = true; + this.txtVoid.Size = new System.Drawing.Size(100, 20); + this.txtVoid.TabIndex = 15; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(115, 471); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(70, 13); + this.label5.TabIndex = 24; + this.label5.Text = "Pending Sale"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 471); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(52, 13); + this.label4.TabIndex = 23; + this.label4.Text = "Void Sale"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(327, 471); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(25, 13); + this.label3.TabIndex = 26; + this.label3.Text = "Tax"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(433, 471); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 13); + this.label2.TabIndex = 27; + this.label2.Text = "Gross Sale"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(221, 471); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 13); + this.label1.TabIndex = 25; + this.label1.Text = "Net Sale"; + // + // dgvSale + // + this.dgvSale.AllowUserToAddRows = false; + this.dgvSale.AllowUserToDeleteRows = false; + this.dgvSale.AllowUserToResizeRows = false; + this.dgvSale.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvSale.Location = new System.Drawing.Point(12, 41); + this.dgvSale.MultiSelect = false; + this.dgvSale.Name = "dgvSale"; + this.dgvSale.ReadOnly = true; + this.dgvSale.RowHeadersVisible = false; + this.dgvSale.RowTemplate.Height = 19; + this.dgvSale.RowTemplate.ReadOnly = true; + this.dgvSale.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvSale.Size = new System.Drawing.Size(524, 427); + this.dgvSale.TabIndex = 14; + // + // dtpFinish + // + this.dtpFinish.CustomFormat = "dd-MMM-yyyy"; + this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpFinish.Location = new System.Drawing.Point(168, 12); + this.dtpFinish.Name = "dtpFinish"; + this.dtpFinish.Size = new System.Drawing.Size(90, 20); + this.dtpFinish.TabIndex = 21; + this.dtpFinish.ValueChanged += new System.EventHandler(this.dtpFinish_ValueChanged); + // + // dtpStart + // + this.dtpStart.CustomFormat = "dd-MMM-yyyy"; + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(12, 12); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(90, 20); + this.dtpStart.TabIndex = 20; + this.dtpStart.ValueChanged += new System.EventHandler(this.dtpStart_ValueChanged); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(108, 16); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(54, 13); + this.label10.TabIndex = 22; + this.label10.Text = "<- Date ->"; + // + // btnPrint + // + this.btnPrint.Location = new System.Drawing.Point(461, 12); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(75, 23); + this.btnPrint.TabIndex = 28; + this.btnPrint.Text = "Print"; + this.btnPrint.UseVisualStyleBackColor = true; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // frmSaleAnalysisForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(548, 519); + this.Controls.Add(this.btnPrint); + this.Controls.Add(this.txtNet); + this.Controls.Add(this.txtTax); + this.Controls.Add(this.txtGross); + this.Controls.Add(this.txtPending); + this.Controls.Add(this.txtVoid); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.dgvSale); + this.Controls.Add(this.dtpFinish); + this.Controls.Add(this.dtpStart); + this.Controls.Add(this.label10); + this.MaximizeBox = false; + this.Name = "frmSaleAnalysisForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Sale Analysis Form"; + this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgvSale)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtNet; + private System.Windows.Forms.TextBox txtTax; + private System.Windows.Forms.TextBox txtGross; + private System.Windows.Forms.TextBox txtPending; + private System.Windows.Forms.TextBox txtVoid; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.DataGridView dgvSale; + private System.Windows.Forms.DateTimePicker dtpFinish; + private System.Windows.Forms.DateTimePicker dtpStart; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Button btnPrint; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.resx b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/SaleTaxReportForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.Designer.cs new file mode 100644 index 0000000..573f855 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.Designer.cs @@ -0,0 +1,161 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class UpdateForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpFrom = new System.Windows.Forms.DateTimePicker(); + this.dtpTo = new System.Windows.Forms.DateTimePicker(); + this.btnGo = new System.Windows.Forms.Button(); + this.txtTwelve = new System.Windows.Forms.TextBox(); + this.txtFour = new System.Windows.Forms.TextBox(); + this.txtZero = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.txtStatus = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // dtpFrom + // + this.dtpFrom.Location = new System.Drawing.Point(12, 12); + this.dtpFrom.Name = "dtpFrom"; + this.dtpFrom.Size = new System.Drawing.Size(268, 20); + this.dtpFrom.TabIndex = 0; + // + // dtpTo + // + this.dtpTo.Location = new System.Drawing.Point(12, 38); + this.dtpTo.Name = "dtpTo"; + this.dtpTo.Size = new System.Drawing.Size(268, 20); + this.dtpTo.TabIndex = 1; + // + // btnGo + // + this.btnGo.Location = new System.Drawing.Point(12, 142); + this.btnGo.Name = "btnGo"; + this.btnGo.Size = new System.Drawing.Size(268, 23); + this.btnGo.TabIndex = 5; + this.btnGo.Text = "Go"; + this.btnGo.UseVisualStyleBackColor = true; + this.btnGo.Click += new System.EventHandler(this.btnGo_Click); + // + // txtTwelve + // + this.txtTwelve.Location = new System.Drawing.Point(50, 116); + this.txtTwelve.Name = "txtTwelve"; + this.txtTwelve.Size = new System.Drawing.Size(230, 20); + this.txtTwelve.TabIndex = 4; + this.txtTwelve.Text = "0"; + // + // txtFour + // + this.txtFour.Location = new System.Drawing.Point(50, 90); + this.txtFour.Name = "txtFour"; + this.txtFour.Size = new System.Drawing.Size(230, 20); + this.txtFour.TabIndex = 3; + this.txtFour.Text = "0"; + // + // txtZero + // + this.txtZero.Location = new System.Drawing.Point(50, 64); + this.txtZero.Name = "txtZero"; + this.txtZero.Size = new System.Drawing.Size(230, 20); + this.txtZero.TabIndex = 2; + this.txtZero.Text = "0"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 67); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(21, 13); + this.label1.TabIndex = 6; + this.label1.Text = "0%"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 93); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(21, 13); + this.label2.TabIndex = 7; + this.label2.Text = "4%"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 119); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 8; + this.label3.Text = "12.5%"; + // + // txtStatus + // + this.txtStatus.Location = new System.Drawing.Point(12, 171); + this.txtStatus.Name = "txtStatus"; + this.txtStatus.ReadOnly = true; + this.txtStatus.Size = new System.Drawing.Size(268, 20); + this.txtStatus.TabIndex = 9; + // + // UpdateForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 203); + this.Controls.Add(this.txtStatus); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.txtZero); + this.Controls.Add(this.txtFour); + this.Controls.Add(this.txtTwelve); + this.Controls.Add(this.btnGo); + this.Controls.Add(this.dtpTo); + this.Controls.Add(this.dtpFrom); + this.Name = "UpdateForm"; + this.Text = "UpdateForm"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpFrom; + private System.Windows.Forms.DateTimePicker dtpTo; + private System.Windows.Forms.Button btnGo; + private System.Windows.Forms.TextBox txtTwelve; + private System.Windows.Forms.TextBox txtFour; + private System.Windows.Forms.TextBox txtZero; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtStatus; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.cs b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.cs new file mode 100644 index 0000000..fb166b5 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.cs @@ -0,0 +1,107 @@ +using System; +using System.Linq; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using System.Collections.Generic; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class UpdateForm : Form + { + private delegate decimal GetTextboxValueDelegate(TextBox textbox); + private delegate decimal ProcessDelegate(DateTime startDate, DateTime endDate, decimal target, decimal tax); + ProcessDelegate processDelegate; + public UpdateForm() + { + InitializeComponent(); + } + public void ShowProgress(decimal minimum, decimal total, decimal current, string message) + { + if (!txtStatus.InvokeRequired) + { + txtStatus.Text = string.Format("{0:#,###} / {1:#,###} :: {2}", current, total, message); + } + else + { + ShowProgessDelegate showProgress = new ShowProgessDelegate(ShowProgress); + BeginInvoke(showProgress, new object[] { minimum, total, current, message }); + } + } + + private void btnGo_Click(object sender, EventArgs e) + { + dtpFrom.Value = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", dtpFrom.Value)); + dtpTo.Value = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", dtpTo.Value)); + + if (!Thread.CurrentPrincipal.IsInRole("Security/CreateUser")) + return; + RunUpdate(-1); + } + private void RunUpdate(decimal last) + { + processDelegate = new ProcessDelegate(Process); + if (last == -1) + processDelegate.BeginInvoke(dtpFrom.Value, dtpTo.Value, GetTextboxValue(txtTwelve), .125M, new AsyncCallback(CallbackMethod), null); + if (last == .125M) + processDelegate.BeginInvoke(dtpFrom.Value, dtpTo.Value, GetTextboxValue(txtFour), .04M, new AsyncCallback(CallbackMethod), null); + if (last == .04M) + processDelegate.BeginInvoke(dtpFrom.Value, dtpTo.Value, GetTextboxValue(txtZero), 0M, new AsyncCallback(CallbackMethod), null); + if (last == 0M) + new ManagementBI().Reorder(dtpFrom.Value, dtpTo.Value, ShowProgress); + } + private void CallbackMethod(IAsyncResult ar) + { + decimal tax = processDelegate.EndInvoke(ar); + RunUpdate(tax); + } + private decimal GetTextboxValue(TextBox textbox) + { + if (!textbox.InvokeRequired) + { + decimal value; + if (!decimal.TryParse(textbox.Text, out value)) + value = 0; + return value; + } + else + { + GetTextboxValueDelegate getTextboxValueDelegate = new GetTextboxValueDelegate(GetTextboxValue); + return (decimal)Invoke(getTextboxValueDelegate, new object[] { textbox }); + } + } + private decimal Process(DateTime startDate, DateTime endDate, decimal target, decimal tax) + { + ShowProgress(0, 0, 0, string.Format("Starting work on {0:00.00%}. Target : {1:#,###}", tax, target)); + if (target == 0) + return tax; + ManagementBI man = new ManagementBI(); + List list = man.GetUpdateBillList(tax, false, true, false, dtpFrom.Value, dtpTo.Value); + int totalBills = list.Count; + decimal existing = man.GetBalance(tax, dtpFrom.Value, dtpTo.Value); + int i = 0; + decimal work = existing / (existing - target); + while ((existing > target) && (totalBills > 0)) + { + int runner = Convert.ToInt32(Math.Floor(work * (i + 1) - i)); + if (runner < totalBills - 1) + { + existing -= man.Update(list[runner + 1], tax, dtpFrom.Value, dtpTo.Value); + totalBills--; + i++; + list.Remove(list[runner + 1]); + } + else + { + i = -1; + work = existing / (existing - target); + } + ShowProgress(0, target, existing, string.Format("Working on {0:00.00%}", tax)); + } + ShowProgress(0, target, existing, string.Format("Finished {0:00.00%}", tax)); + return tax; + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.resx b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.Designer.cs b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.Designer.cs new file mode 100644 index 0000000..f27cf5e --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.Designer.cs @@ -0,0 +1,404 @@ +namespace Tanshu.Accounts.PointOfSale.Updates +{ + partial class UpdateSales + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + this.label1 = new System.Windows.Forms.Label(); + this.txtDiff = new System.Windows.Forms.TextBox(); + this.dgvPending = new System.Windows.Forms.DataGridView(); + this.selectDataGridViewItem = new System.Windows.Forms.DataGridViewButtonColumn(); + this.TableID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.voucherIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.billNoDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.kotDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tableIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.amountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.importantDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.alarmDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.bookingTimeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.lastEditedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.waiterDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.cashierDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.printedDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.alarmTimeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsPending = new System.Windows.Forms.BindingSource(this.components); + this.dtpFinish = new System.Windows.Forms.DateTimePicker(); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.label10 = new System.Windows.Forms.Label(); + this.btnShowBill = new System.Windows.Forms.Button(); + this.bindingSource = new System.Windows.Forms.BindingSource(this.components); + this.label2 = new System.Windows.Forms.Label(); + this.txtTarget = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.cmbTax = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPending)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPending)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(600, 18); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(23, 13); + this.label1.TabIndex = 8; + this.label1.Text = "Diff"; + // + // txtDiff + // + this.txtDiff.Location = new System.Drawing.Point(629, 12); + this.txtDiff.Name = "txtDiff"; + this.txtDiff.ReadOnly = true; + this.txtDiff.Size = new System.Drawing.Size(126, 20); + this.txtDiff.TabIndex = 10; + // + // dgvPending + // + this.dgvPending.AllowUserToAddRows = false; + this.dgvPending.AllowUserToDeleteRows = false; + this.dgvPending.AllowUserToOrderColumns = true; + this.dgvPending.AllowUserToResizeRows = false; + this.dgvPending.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPending.AutoGenerateColumns = false; + this.dgvPending.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvPending.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvPending.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPending.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.selectDataGridViewItem, + this.TableID, + this.voucherIDDataGridViewTextBoxColumn, + this.billNoDataGridViewTextBoxColumn, + this.kotDataGridViewTextBoxColumn, + this.tableIDDataGridViewTextBoxColumn, + this.amountDataGridViewTextBoxColumn, + this.importantDataGridViewCheckBoxColumn, + this.alarmDataGridViewCheckBoxColumn, + this.bookingTimeDataGridViewTextBoxColumn, + this.lastEditedDataGridViewTextBoxColumn, + this.waiterDataGridViewTextBoxColumn, + this.cashierDataGridViewTextBoxColumn, + this.printedDataGridViewCheckBoxColumn, + this.alarmTimeDataGridViewTextBoxColumn}); + this.dgvPending.DataSource = this.bsPending; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvPending.DefaultCellStyle = dataGridViewCellStyle5; + this.dgvPending.Location = new System.Drawing.Point(12, 38); + this.dgvPending.MultiSelect = false; + this.dgvPending.Name = "dgvPending"; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvPending.RowHeadersDefaultCellStyle = dataGridViewCellStyle6; + this.dgvPending.RowHeadersVisible = false; + this.dgvPending.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvPending.Size = new System.Drawing.Size(743, 500); + this.dgvPending.TabIndex = 9; + this.dgvPending.VirtualMode = true; + this.dgvPending.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPending_CellContentClick); + // + // selectDataGridViewItem + // + this.selectDataGridViewItem.HeaderText = "Select"; + this.selectDataGridViewItem.Name = "selectDataGridViewItem"; + this.selectDataGridViewItem.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.selectDataGridViewItem.Text = "Select"; + this.selectDataGridViewItem.UseColumnTextForButtonValue = true; + this.selectDataGridViewItem.Width = 43; + // + // TableID + // + this.TableID.DataPropertyName = "TableID"; + this.TableID.HeaderText = "TableID"; + this.TableID.Name = "TableID"; + this.TableID.Width = 70; + // + // voucherIDDataGridViewTextBoxColumn + // + this.voucherIDDataGridViewTextBoxColumn.DataPropertyName = "voucherID"; + this.voucherIDDataGridViewTextBoxColumn.HeaderText = "voucherID"; + this.voucherIDDataGridViewTextBoxColumn.Name = "voucherIDDataGridViewTextBoxColumn"; + this.voucherIDDataGridViewTextBoxColumn.Visible = false; + this.voucherIDDataGridViewTextBoxColumn.Width = 82; + // + // billNoDataGridViewTextBoxColumn + // + this.billNoDataGridViewTextBoxColumn.DataPropertyName = "BillNo"; + this.billNoDataGridViewTextBoxColumn.HeaderText = "BillNo"; + this.billNoDataGridViewTextBoxColumn.Name = "billNoDataGridViewTextBoxColumn"; + this.billNoDataGridViewTextBoxColumn.Width = 59; + // + // kotDataGridViewTextBoxColumn + // + this.kotDataGridViewTextBoxColumn.DataPropertyName = "Kot"; + this.kotDataGridViewTextBoxColumn.HeaderText = "Kot"; + this.kotDataGridViewTextBoxColumn.Name = "kotDataGridViewTextBoxColumn"; + this.kotDataGridViewTextBoxColumn.Width = 48; + // + // tableIDDataGridViewTextBoxColumn + // + this.tableIDDataGridViewTextBoxColumn.DataPropertyName = "TableID"; + this.tableIDDataGridViewTextBoxColumn.HeaderText = "TableID"; + this.tableIDDataGridViewTextBoxColumn.Name = "tableIDDataGridViewTextBoxColumn"; + this.tableIDDataGridViewTextBoxColumn.Width = 70; + // + // amountDataGridViewTextBoxColumn + // + this.amountDataGridViewTextBoxColumn.DataPropertyName = "Amount"; + this.amountDataGridViewTextBoxColumn.HeaderText = "Amount"; + this.amountDataGridViewTextBoxColumn.Name = "amountDataGridViewTextBoxColumn"; + this.amountDataGridViewTextBoxColumn.Width = 68; + // + // importantDataGridViewCheckBoxColumn + // + this.importantDataGridViewCheckBoxColumn.DataPropertyName = "Important"; + this.importantDataGridViewCheckBoxColumn.HeaderText = "Important"; + this.importantDataGridViewCheckBoxColumn.Name = "importantDataGridViewCheckBoxColumn"; + this.importantDataGridViewCheckBoxColumn.Visible = false; + this.importantDataGridViewCheckBoxColumn.Width = 57; + // + // alarmDataGridViewCheckBoxColumn + // + this.alarmDataGridViewCheckBoxColumn.DataPropertyName = "Alarm"; + this.alarmDataGridViewCheckBoxColumn.HeaderText = "Alarm"; + this.alarmDataGridViewCheckBoxColumn.Name = "alarmDataGridViewCheckBoxColumn"; + this.alarmDataGridViewCheckBoxColumn.Visible = false; + this.alarmDataGridViewCheckBoxColumn.Width = 39; + // + // bookingTimeDataGridViewTextBoxColumn + // + this.bookingTimeDataGridViewTextBoxColumn.DataPropertyName = "BookingTime"; + this.bookingTimeDataGridViewTextBoxColumn.HeaderText = "BookingTime"; + this.bookingTimeDataGridViewTextBoxColumn.Name = "bookingTimeDataGridViewTextBoxColumn"; + this.bookingTimeDataGridViewTextBoxColumn.Width = 94; + // + // lastEditedDataGridViewTextBoxColumn + // + this.lastEditedDataGridViewTextBoxColumn.DataPropertyName = "LastEdited"; + this.lastEditedDataGridViewTextBoxColumn.HeaderText = "LastEdited"; + this.lastEditedDataGridViewTextBoxColumn.Name = "lastEditedDataGridViewTextBoxColumn"; + this.lastEditedDataGridViewTextBoxColumn.Width = 82; + // + // waiterDataGridViewTextBoxColumn + // + this.waiterDataGridViewTextBoxColumn.DataPropertyName = "Waiter"; + this.waiterDataGridViewTextBoxColumn.HeaderText = "Waiter"; + this.waiterDataGridViewTextBoxColumn.Name = "waiterDataGridViewTextBoxColumn"; + this.waiterDataGridViewTextBoxColumn.Width = 63; + // + // cashierDataGridViewTextBoxColumn + // + this.cashierDataGridViewTextBoxColumn.DataPropertyName = "Cashier"; + this.cashierDataGridViewTextBoxColumn.HeaderText = "Cashier"; + this.cashierDataGridViewTextBoxColumn.Name = "cashierDataGridViewTextBoxColumn"; + this.cashierDataGridViewTextBoxColumn.Width = 67; + // + // printedDataGridViewCheckBoxColumn + // + this.printedDataGridViewCheckBoxColumn.DataPropertyName = "Printed"; + this.printedDataGridViewCheckBoxColumn.HeaderText = "Printed"; + this.printedDataGridViewCheckBoxColumn.Name = "printedDataGridViewCheckBoxColumn"; + this.printedDataGridViewCheckBoxColumn.Visible = false; + this.printedDataGridViewCheckBoxColumn.Width = 46; + // + // alarmTimeDataGridViewTextBoxColumn + // + this.alarmTimeDataGridViewTextBoxColumn.DataPropertyName = "AlarmTime"; + this.alarmTimeDataGridViewTextBoxColumn.HeaderText = "AlarmTime"; + this.alarmTimeDataGridViewTextBoxColumn.Name = "alarmTimeDataGridViewTextBoxColumn"; + this.alarmTimeDataGridViewTextBoxColumn.Visible = false; + this.alarmTimeDataGridViewTextBoxColumn.Width = 81; + // + // bsPending + // + this.bsPending.DataSource = typeof(Tanshu.Accounts.Contracts.PendingBillsBO); + // + // dtpFinish + // + this.dtpFinish.CustomFormat = "dd-MMM-yyyy"; + this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpFinish.Location = new System.Drawing.Point(168, 12); + this.dtpFinish.Name = "dtpFinish"; + this.dtpFinish.Size = new System.Drawing.Size(90, 20); + this.dtpFinish.TabIndex = 2; + // + // dtpStart + // + this.dtpStart.CustomFormat = "dd-MMM-yyyy"; + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(12, 12); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(90, 20); + this.dtpStart.TabIndex = 0; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(108, 18); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(54, 13); + this.label10.TabIndex = 1; + this.label10.Text = "<- Date ->"; + // + // btnShowBill + // + this.btnShowBill.Location = new System.Drawing.Point(264, 12); + this.btnShowBill.Name = "btnShowBill"; + this.btnShowBill.Size = new System.Drawing.Size(70, 20); + this.btnShowBill.TabIndex = 3; + this.btnShowBill.Text = "Show List"; + this.btnShowBill.UseVisualStyleBackColor = true; + this.btnShowBill.Click += new System.EventHandler(this.btnShowBill_Click); + // + // bindingSource + // + this.bindingSource.DataSource = typeof(Tanshu.Accounts.Contracts.SalesBillItemBO); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(340, 18); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(25, 13); + this.label2.TabIndex = 4; + this.label2.Text = "Tax"; + // + // txtTarget + // + this.txtTarget.Location = new System.Drawing.Point(474, 12); + this.txtTarget.Name = "txtTarget"; + this.txtTarget.Size = new System.Drawing.Size(120, 20); + this.txtTarget.TabIndex = 7; + this.txtTarget.Text = "0"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(430, 18); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(38, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Target"; + // + // cmbTax + // + this.cmbTax.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbTax.FormattingEnabled = true; + this.cmbTax.Items.AddRange(new object[] { + "0%", + "4%", + "12.5%"}); + this.cmbTax.Location = new System.Drawing.Point(371, 10); + this.cmbTax.Name = "cmbTax"; + this.cmbTax.Size = new System.Drawing.Size(53, 21); + this.cmbTax.TabIndex = 5; + // + // UpdateSales + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(767, 544); + this.Controls.Add(this.cmbTax); + this.Controls.Add(this.label3); + this.Controls.Add(this.txtTarget); + this.Controls.Add(this.label2); + this.Controls.Add(this.btnShowBill); + this.Controls.Add(this.dtpFinish); + this.Controls.Add(this.dtpStart); + this.Controls.Add(this.label10); + this.Controls.Add(this.dgvPending); + this.Controls.Add(this.txtDiff); + this.Controls.Add(this.label1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "UpdateSales"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Update Sales"; + ((System.ComponentModel.ISupportInitialize)(this.dgvPending)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPending)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtDiff; + private System.Windows.Forms.DataGridView dgvPending; + private System.Windows.Forms.DateTimePicker dtpFinish; + private System.Windows.Forms.DateTimePicker dtpStart; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Button btnShowBill; + private System.Windows.Forms.BindingSource bsPending; + private System.Windows.Forms.BindingSource bindingSource; + private System.Windows.Forms.DataGridViewButtonColumn selectDataGridViewItem; + private System.Windows.Forms.DataGridViewTextBoxColumn TableID; + private System.Windows.Forms.DataGridViewTextBoxColumn voucherIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn billNoDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn kotDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn tableIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn amountDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn importantDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn alarmDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn bookingTimeDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn lastEditedDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn waiterDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn cashierDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn printedDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn alarmTimeDataGridViewTextBoxColumn; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtTarget; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cmbTax; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.cs b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.cs new file mode 100644 index 0000000..455987b --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.Linq; +using System.Threading; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; +using Tanshu.Common; + +namespace Tanshu.Accounts.PointOfSale.Updates +{ + public partial class UpdateSales : Form + { + private List pendingBills = new List(); + public UpdateSales() + { + InitializeComponent(); + } + + private void btnShowBill_Click(object sender, EventArgs e) + { + dtpStart.Value = dtpStart.Value.Date; + dtpFinish.Value = dtpFinish.Value.Date.AddDays(1).AddSeconds(-1); + pendingBills = new ManagementBI().GetPaidBills(dtpStart.Value, dtpFinish.Value); + bsPending.DataSource = pendingBills; + decimal? tax = null; + if (cmbTax.Text == "0%") + tax = 0; + else if (cmbTax.Text == "4%") + tax = .04M; + else if (cmbTax.Text == "12.5%") + tax = .125M; + decimal target = Convert.ToDecimal(txtTarget.Text); + decimal existing = new ManagementBI().GetBalance(tax, dtpStart.Value, dtpFinish.Value); + txtDiff.Text = (target - existing).ToString("#,##.00"); + } + + private void dgvPending_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (bsPending.Current != null) + { + //Guid gd = new Guid(dgvPending.Rows[e.RowIndex].Cells[2].Value.ToString()); + PendingBillsBO current = (PendingBillsBO)bsPending.Current; + using (SalesForm frmSale = new SalesForm(current.voucherID)) + frmSale.ShowDialog(); + btnShowBill_Click(this, null); + } + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.resx b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.resx new file mode 100644 index 0000000..bc3583c --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/Updates/UpdateSales.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + 36, 6 + + + 145, 6 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.Designer.cs b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.Designer.cs new file mode 100644 index 0000000..27ce76f --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.Designer.cs @@ -0,0 +1,179 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class AssignRoles + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lstRoles = new System.Windows.Forms.ListBox(); + this.lstUserRoles = new System.Windows.Forms.ListBox(); + this.cmbUsers = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.btnAddSelected = new System.Windows.Forms.Button(); + this.btnAddAll = new System.Windows.Forms.Button(); + this.btnRemoveSelected = new System.Windows.Forms.Button(); + this.btnRemoveAll = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // lstRoles + // + this.lstRoles.FormattingEnabled = true; + this.lstRoles.Location = new System.Drawing.Point(12, 59); + this.lstRoles.Name = "lstRoles"; + this.lstRoles.Size = new System.Drawing.Size(183, 225); + this.lstRoles.TabIndex = 0; + // + // lstUserRoles + // + this.lstUserRoles.FormattingEnabled = true; + this.lstUserRoles.Location = new System.Drawing.Point(274, 59); + this.lstUserRoles.Name = "lstUserRoles"; + this.lstUserRoles.Size = new System.Drawing.Size(183, 225); + this.lstUserRoles.TabIndex = 1; + // + // cmbUsers + // + this.cmbUsers.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUsers.FormattingEnabled = true; + this.cmbUsers.Location = new System.Drawing.Point(72, 12); + this.cmbUsers.Name = "cmbUsers"; + this.cmbUsers.Size = new System.Drawing.Size(276, 21); + this.cmbUsers.TabIndex = 2; + this.cmbUsers.SelectedIndexChanged += new System.EventHandler(this.cmbUsers_SelectedIndexChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 12); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 13); + this.label1.TabIndex = 4; + this.label1.Text = "User Name"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 43); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(76, 13); + this.label2.TabIndex = 5; + this.label2.Text = "Pending Roles"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(271, 43); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(80, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Assigned Roles"; + // + // btnAddSelected + // + this.btnAddSelected.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnAddSelected.Location = new System.Drawing.Point(201, 105); + this.btnAddSelected.Name = "btnAddSelected"; + this.btnAddSelected.Size = new System.Drawing.Size(67, 25); + this.btnAddSelected.TabIndex = 7; + this.btnAddSelected.Text = ">"; + this.btnAddSelected.UseVisualStyleBackColor = true; + this.btnAddSelected.Click += new System.EventHandler(this.btnAddSelected_Click); + // + // btnAddAll + // + this.btnAddAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnAddAll.Location = new System.Drawing.Point(201, 136); + this.btnAddAll.Name = "btnAddAll"; + this.btnAddAll.Size = new System.Drawing.Size(67, 25); + this.btnAddAll.TabIndex = 8; + this.btnAddAll.Text = ">>"; + this.btnAddAll.UseVisualStyleBackColor = true; + this.btnAddAll.Click += new System.EventHandler(this.btnAddAll_Click); + // + // btnRemoveSelected + // + this.btnRemoveSelected.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnRemoveSelected.Location = new System.Drawing.Point(201, 167); + this.btnRemoveSelected.Name = "btnRemoveSelected"; + this.btnRemoveSelected.Size = new System.Drawing.Size(67, 25); + this.btnRemoveSelected.TabIndex = 9; + this.btnRemoveSelected.Text = "<"; + this.btnRemoveSelected.UseVisualStyleBackColor = true; + this.btnRemoveSelected.Click += new System.EventHandler(this.btnRemoveSelected_Click); + // + // btnRemoveAll + // + this.btnRemoveAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnRemoveAll.Location = new System.Drawing.Point(201, 198); + this.btnRemoveAll.Name = "btnRemoveAll"; + this.btnRemoveAll.Size = new System.Drawing.Size(67, 25); + this.btnRemoveAll.TabIndex = 10; + this.btnRemoveAll.Text = "<<"; + this.btnRemoveAll.UseVisualStyleBackColor = true; + this.btnRemoveAll.Click += new System.EventHandler(this.btnRemoveAll_Click); + // + // AssignRoles + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(469, 323); + this.Controls.Add(this.btnRemoveAll); + this.Controls.Add(this.btnRemoveSelected); + this.Controls.Add(this.btnAddAll); + this.Controls.Add(this.btnAddSelected); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.cmbUsers); + this.Controls.Add(this.lstUserRoles); + this.Controls.Add(this.lstRoles); + this.MaximizeBox = false; + this.Name = "AssignRoles"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "AssignRoles"; + this.Load += new System.EventHandler(this.AssignRoles_Load); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AssignRoles_FormClosing); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ListBox lstRoles; + private System.Windows.Forms.ListBox lstUserRoles; + private System.Windows.Forms.ComboBox cmbUsers; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button btnAddSelected; + private System.Windows.Forms.Button btnAddAll; + private System.Windows.Forms.Button btnRemoveSelected; + private System.Windows.Forms.Button btnRemoveAll; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.cs b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.cs new file mode 100644 index 0000000..e30d451 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using System.Threading; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class AssignRoles : Form + { + public AssignRoles() + { + InitializeComponent(); + } + + private void AssignRoles_Load(object sender, EventArgs e) + { + FillUsers(); + } + + private void FillUsers() + { + cmbUsers.DisplayMember = "Name"; + cmbUsers.ValueMember = "UserID"; + cmbUsers.DataSource = new UserBI().GetUsers(); + } + + private void cmbUsers_SelectedIndexChanged(object sender, EventArgs e) + { + RefreshRoles(); + } + + private void RefreshRoles() + { + if (cmbUsers.SelectedValue == null) + { + string[] roles = new MembershipBI().GetAllRoles(); + lstRoles.DataSource = roles; + // lstRoles.DataBind(); + string[] userRoles = new string[0]; + lstUserRoles.DataSource = userRoles; + // lstUserRoles.DataBind(); + + btnAddAll.Enabled = false; + btnAddSelected.Enabled = false; + btnRemoveAll.Enabled = false; + btnRemoveSelected.Enabled = false; + } + else + { + string[] roles = new MembershipBI().GetAllRoles(); + string[] userRoles = new MembershipBI().GetRolesForUser(cmbUsers.Text.Trim()); + roles = roles.Where(r => !userRoles.Contains(r)).ToArray(); + lstRoles.DataSource = roles; + // lstRoles.DataBind(); + + lstUserRoles.DataSource = userRoles; + // lstUserRoles.DataBind(); + + btnAddAll.Enabled = true; + btnAddSelected.Enabled = true; + btnRemoveAll.Enabled = true; + btnRemoveSelected.Enabled = true; + + } + } + + private void btnAddSelected_Click(object sender, EventArgs e) + { + if (lstRoles.SelectedItem != null) + { + new MembershipBI().AddUsersToRoles(new string[] { cmbUsers.Text.Trim() }, new string[] { lstRoles.SelectedItem.ToString() }); + RefreshRoles(); + } + } + + private void btnRemoveSelected_Click(object sender, EventArgs e) + { + if (lstUserRoles.SelectedItem != null) + { + new MembershipBI().RemoveUsersFromRoles(new string[] { cmbUsers.Text.Trim() }, new string[] { lstUserRoles.SelectedItem.ToString() }); + RefreshRoles(); + } + } + + private void btnAddAll_Click(object sender, EventArgs e) + { + for (int i = 0; i <= lstRoles.Items.Count - 1; i++) + { + new MembershipBI().AddUsersToRoles(new string[] { cmbUsers.Text.Trim() }, new string[] { lstRoles.Items[i].ToString() }); + } + RefreshRoles(); + + } + + private void btnRemoveAll_Click(object sender, EventArgs e) + { + for (int i = 0; i <= lstUserRoles.Items.Count - 1; i++) + { + new MembershipBI().RemoveUsersFromRoles(new string[] { cmbUsers.Text.Trim() }, new string[] { lstUserRoles.Items[i].ToString() }); + } + RefreshRoles(); + } + + private void AssignRoles_FormClosing(object sender, FormClosingEventArgs e) + { + string userName = Thread.CurrentPrincipal.Identity.Name; + AccountsPrincipal principal = AccountsPrincipal.CreateAccountsPrincipal(new MembershipBI().GetRolesForUser(userName), new MembershipBI().GetUserFromName(userName)); + + // bind the generic principal to the thread + Thread.CurrentPrincipal = principal; + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.resx b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/AssignRoles.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.Designer.cs b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.Designer.cs new file mode 100644 index 0000000..18ecabc --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.Designer.cs @@ -0,0 +1,173 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class ChangePassword + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.txtPassword = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.txtUsername = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.txtnewPassword = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtConfirmPassword = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.btnCreateUSer = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(104, 38); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.PasswordChar = '/'; + this.txtPassword.Size = new System.Drawing.Size(162, 20); + this.txtPassword.TabIndex = 5; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(28, 38); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(70, 13); + this.label2.TabIndex = 6; + this.label2.Text = "old Password"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtUsername + // + this.txtUsername.Enabled = false; + this.txtUsername.Location = new System.Drawing.Point(104, 12); + this.txtUsername.Name = "txtUsername"; + this.txtUsername.Size = new System.Drawing.Size(162, 20); + this.txtUsername.TabIndex = 3; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(38, 12); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 13); + this.label1.TabIndex = 4; + this.label1.Text = "User Name"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtnewPassword + // + this.txtnewPassword.Location = new System.Drawing.Point(104, 64); + this.txtnewPassword.Name = "txtnewPassword"; + this.txtnewPassword.PasswordChar = '/'; + this.txtnewPassword.Size = new System.Drawing.Size(162, 20); + this.txtnewPassword.TabIndex = 7; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(20, 64); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(78, 13); + this.label3.TabIndex = 8; + this.label3.Text = "New Password"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtConfirmPassword + // + this.txtConfirmPassword.Location = new System.Drawing.Point(104, 90); + this.txtConfirmPassword.Name = "txtConfirmPassword"; + this.txtConfirmPassword.PasswordChar = '/'; + this.txtConfirmPassword.Size = new System.Drawing.Size(162, 20); + this.txtConfirmPassword.TabIndex = 9; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(7, 90); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(91, 13); + this.label4.TabIndex = 10; + this.label4.Text = "Confirm Password"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(220, 116); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(46, 23); + this.button2.TabIndex = 12; + this.button2.Text = "Ca&ncel"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // btnCreateUSer + // + this.btnCreateUSer.Location = new System.Drawing.Point(104, 116); + this.btnCreateUSer.Name = "btnCreateUSer"; + this.btnCreateUSer.Size = new System.Drawing.Size(110, 23); + this.btnCreateUSer.TabIndex = 11; + this.btnCreateUSer.Text = "&Change Password"; + this.btnCreateUSer.UseVisualStyleBackColor = true; + this.btnCreateUSer.Click += new System.EventHandler(this.btnCreateUSer_Click); + // + // ChangePassword + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(287, 145); + this.Controls.Add(this.button2); + this.Controls.Add(this.btnCreateUSer); + this.Controls.Add(this.txtConfirmPassword); + this.Controls.Add(this.label4); + this.Controls.Add(this.txtnewPassword); + this.Controls.Add(this.label3); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtUsername); + this.Controls.Add(this.label1); + this.MaximizeBox = false; + this.Name = "ChangePassword"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "ChangePassword"; + this.Load += new System.EventHandler(this.ChangePassword_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtUsername; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtnewPassword; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtConfirmPassword; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button btnCreateUSer; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.cs b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.cs new file mode 100644 index 0000000..d193250 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.cs @@ -0,0 +1,64 @@ +using System; +using System.Windows.Forms; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class ChangePassword : Form + { + public ChangePassword() + { + InitializeComponent(); + } + + private void ChangePassword_Load(object sender, EventArgs e) + { + txtUsername.Text = CurrentUser.user.Name; + } + + private void button2_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnCreateUSer_Click(object sender, EventArgs e) + { + if (txtPassword.Text.Trim() == "") + MessageBox.Show("Old password can not be blank", "Blank not allowed"); + else + { + if (txtnewPassword.Text.Trim() == "") + MessageBox.Show("New password can not be blank", "Blank not allowed"); + else + { + if (txtnewPassword.Text.Trim() != txtConfirmPassword.Text.Trim()) + MessageBox.Show("New password not matched to confirm password", "Password not matched"); + else + { + if (ChangeUserPassword()) + { + MessageBox.Show("Password changed", "Confirm"); + this.Close(); + } + else + MessageBox.Show("old Password not matched for user", "Wrong Password"); + } + } + } + } + + private bool ChangeUserPassword() + { + UserBO userEntity = new UserBO(); + userEntity.Name = txtUsername.Text.Trim(); + userEntity.Password = Tanshu.Common.Md5.Hash(txtPassword.Text.Trim(), "Salt"); + + if (new MembershipBI().ValidateUser(userEntity.Name, userEntity.Password)) + return new UserBI().ChangePassword(userEntity, Tanshu.Common.Md5.Hash(txtnewPassword.Text.Trim(), "Salt")); + else + return false; + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.resx b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/ChangePassword.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/RoleFactoryBI.cs b/Tanshu.Accounts.PointOfSale/User Management/RoleFactoryBI.cs new file mode 100644 index 0000000..a63f874 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/RoleFactoryBI.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using Tanshu.Accounts.BI; + +namespace Tanshu.Accounts.PointOfSale +{ + public class RoleFactoryBI + { + private RoleFactoryBI() + { } + public static RoleBI GetRoleBI(string roleID) + { + RoleBI roleBI = new RoleBI(roleID, CurrentUser.user.UserID); + if (!roleBI.IsAllowed) + { + using (LoginForm frm = new LoginForm()) + { + frm.ShowDialog(); + roleBI.Evelvate(frm.UserName); + } + } + return roleBI; + } + } +} diff --git a/Tanshu.Accounts.PointOfSale/User Management/UserForm.Designer.cs b/Tanshu.Accounts.PointOfSale/User Management/UserForm.Designer.cs new file mode 100644 index 0000000..2a5da21 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/UserForm.Designer.cs @@ -0,0 +1,147 @@ +namespace Tanshu.Accounts.PointOfSale +{ + partial class UserForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.txtUsername = new System.Windows.Forms.TextBox(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.chkLocked = new System.Windows.Forms.CheckBox(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 13); + this.label1.TabIndex = 0; + this.label1.Text = "User Name"; + // + // txtUsername + // + this.txtUsername.Location = new System.Drawing.Point(78, 12); + this.txtUsername.Name = "txtUsername"; + this.txtUsername.Size = new System.Drawing.Size(188, 20); + this.txtUsername.TabIndex = 0; + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(78, 38); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.PasswordChar = '/'; + this.txtPassword.Size = new System.Drawing.Size(188, 20); + this.txtPassword.TabIndex = 1; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 39); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(53, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Password"; + // + // chkLocked + // + this.chkLocked.AutoSize = true; + this.chkLocked.Location = new System.Drawing.Point(78, 65); + this.chkLocked.Name = "chkLocked"; + this.chkLocked.Size = new System.Drawing.Size(82, 17); + this.chkLocked.TabIndex = 2; + this.chkLocked.Text = "Locked Out"; + this.chkLocked.UseVisualStyleBackColor = true; + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(96, 88); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(78, 23); + this.btnDelete.TabIndex = 9; + this.btnDelete.Text = "&Delete"; + this.btnDelete.UseVisualStyleBackColor = true; + this.btnDelete.Click += new System.EventHandler(this.btnCreateUSer_Click); + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(180, 88); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(85, 23); + this.btnCancel.TabIndex = 10; + this.btnCancel.Text = "&Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnSave + // + this.btnSave.Location = new System.Drawing.Point(12, 88); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(78, 23); + this.btnSave.TabIndex = 11; + this.btnSave.Text = "&Save"; + this.btnSave.UseVisualStyleBackColor = true; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // UserForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(300, 136); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.chkLocked); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtUsername); + this.Controls.Add(this.label1); + this.MaximizeBox = false; + this.Name = "UserForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "User Form"; + this.Load += new System.EventHandler(this.NewUser_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtUsername; + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.CheckBox chkLocked; + private System.Windows.Forms.Button btnDelete; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnSave; + } +} \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/User Management/UserForm.cs b/Tanshu.Accounts.PointOfSale/User Management/UserForm.cs new file mode 100644 index 0000000..72c04a8 --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/UserForm.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Tanshu.Accounts.Helpers; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Contracts; + +namespace Tanshu.Accounts.PointOfSale +{ + public partial class UserForm : Form + { + UserBO user; + public UserForm( Guid? userID) + { + InitializeComponent(); + if (userID.HasValue) + user = new UserBI().GetUser(userID.Value); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnCreateUSer_Click(object sender, EventArgs e) + { + new UserBI().Delete(user.UserID); + btnCancel_Click(sender, e); + } + + private void NewUser_Load(object sender, EventArgs e) + { + if (user != null) + { + txtUsername.Text = user.Name; + txtPassword.Text = user.Password; + chkLocked.Checked = user.LockedOut; + } + } + + private bool Save() + { + if (user == null) + user = new UserBO(); + user.Name = txtUsername.Text.Trim(); + user.Password = Tanshu.Common.Md5.Hash(txtPassword.Text.Trim(), "Salt"); + user.LockedOut = (chkLocked.Checked == true ? true : false); + if (user.UserID == new Guid()) + new UserBI().Insert(user); + else + new UserBI().Update(user); + return true; + } + + private void btnSave_Click(object sender, EventArgs e) + { + if (!ValidateValues()) + { + MessageBox.Show("Missing Information: Please check the form."); + txtUsername.Focus(); + } + else + { + Save(); + btnCancel_Click(sender, e); + } + } + private bool ValidateValues() + { + if (txtUsername.Text.Trim() == "") + return false; + if (txtPassword.Text.Trim() == "") + return false; + return true; + } + + + } +} diff --git a/Tanshu.Accounts.PointOfSale/User Management/UserForm.resx b/Tanshu.Accounts.PointOfSale/User Management/UserForm.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Tanshu.Accounts.PointOfSale/User Management/UserForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tanshu.Accounts.Print/Properties/AssemblyInfo.cs b/Tanshu.Accounts.Print/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5bffc89 --- /dev/null +++ b/Tanshu.Accounts.Print/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Accounts.Print")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Accounts.Print")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f0e88c74-f972-4264-b181-b753a792eb1b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.*")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.Print/RawPrinterHelper.cs b/Tanshu.Accounts.Print/RawPrinterHelper.cs new file mode 100644 index 0000000..0b3cc98 --- /dev/null +++ b/Tanshu.Accounts.Print/RawPrinterHelper.cs @@ -0,0 +1,103 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Collections.Generic; +using System.Text; + +namespace Tanshu.Accounts.Print +{ + internal class RawPrinterHelper + { + // Cut Code for the printer Alt-29, Alt-86, Alt-49 + #region API Declarations + // Structure and API declarions: + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + internal class DOCINFOA + { + [MarshalAs(UnmanagedType.LPStr)] + public string pDocName; + [MarshalAs(UnmanagedType.LPStr)] + public string pOutputFile; + [MarshalAs(UnmanagedType.LPStr)] + public string pDataType; + } + [DllImport("winspool.Drv", EntryPoint = "OpenPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, IntPtr pd); + + [DllImport("winspool.Drv", EntryPoint = "ClosePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool ClosePrinter(IntPtr hPrinter); + + [DllImport("winspool.Drv", EntryPoint = "StartDocPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, [In, MarshalAs(UnmanagedType.LPStruct)] DOCINFOA di); + + [DllImport("winspool.Drv", EntryPoint = "EndDocPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool EndDocPrinter(IntPtr hPrinter); + + [DllImport("winspool.Drv", EntryPoint = "StartPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool StartPagePrinter(IntPtr hPrinter); + + [DllImport("winspool.Drv", EntryPoint = "EndPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool EndPagePrinter(IntPtr hPrinter); + + [DllImport("winspool.Drv", EntryPoint = "WritePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] + internal static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwWritten); + #endregion + + internal static bool PrintString(string printerName, string documentName, string printingText, char[] lineBreakChars) + { + string[] PageText; + IntPtr hPrinter = new IntPtr(0); + // The printer handle. + Int32 dwError; + // Last error -incase there was trouble. + DOCINFOA di = new DOCINFOA(); + // Describes your document(name, port, data type). + bool bSuccess = false; // Your success code. + + // Set up the DOCINFO structure. + di.pDocName = documentName; + di.pDataType = "RAW"; + PageText = printingText.Split(lineBreakChars ); + + if (OpenPrinter(printerName.Normalize(), out hPrinter, System.IntPtr.Zero)) + { + if (StartDocPrinter(hPrinter, 1, di)) + { + for (int i = 0; i < PageText.Length; i++) + { + if (StartPagePrinter(hPrinter)) + { + //Write your printer - specific bytes to the printer. + bSuccess = SendLine(PageText[i], hPrinter); + EndPagePrinter(hPrinter); + } + } + EndDocPrinter(hPrinter); + } + ClosePrinter(hPrinter); + } + // If you did not succeed, GetLastError may give more information about why not. + if (bSuccess == false) + { + dwError = Marshal.GetLastWin32Error(); + } + return bSuccess; + }// SendBytesToPrinter() + + internal static bool SendLine(string szString, IntPtr hPrinter) + { + bool bSuccess = false; + Int32 dwWritten = 0; + Int32 dwCount = szString.Length; // How many characters are in the string? + + IntPtr pBytes = Marshal.StringToCoTaskMemAnsi(szString); + // Assume that the printer is expecting ANSI text, and then convert + // the string to ANSI text. + + // Write your bytes. + bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten); + + return bSuccess; + } + } +} diff --git a/Tanshu.Accounts.Print/Tanshu.Accounts.Print.csproj b/Tanshu.Accounts.Print/Tanshu.Accounts.Print.csproj new file mode 100644 index 0000000..1b15a6b --- /dev/null +++ b/Tanshu.Accounts.Print/Tanshu.Accounts.Print.csproj @@ -0,0 +1,79 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {90C9D02C-91AF-4529-86BE-28320332DDB5} + Library + Properties + Tanshu.Accounts.Print + Tanshu.Accounts.Print + v3.5 + 512 + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB} + Tanshu.Accounts.BI + + + {3E28AAA5-A493-4446-8188-C615245943B4} + Tanshu.Accounts.Helpers + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.Print/Thermal.cs b/Tanshu.Accounts.Print/Thermal.cs new file mode 100644 index 0000000..a9e820c --- /dev/null +++ b/Tanshu.Accounts.Print/Thermal.cs @@ -0,0 +1,440 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Tanshu.Accounts.Contracts; +using Tanshu.Accounts.BI; +using Tanshu.Accounts.Helpers; + +namespace Tanshu.Accounts.Print +{ + enum Align + { + None = 0, + Left = 1, + Centre = 2, + Right = 4 + } + + public static class Thermal + { + private static string CutPrinter = System.Configuration.ConfigurationManager.AppSettings["Printer"].ToString().Trim().EndsWith("Epson") ? "\n\r\n\r\n\r\n\r\n\r\n\r" + (char)29 + (char)86 + (char)49 : "\n\r" + (char)29 + (char)86 + (char)49; + private const string DrawLine = "\n\r------------------------------------------"; + private const string DrawEqual = "\n\r=========================================="; + private static string DesignWaiterKot(SaleVoucherBO trans, List billItems) + { + WaiterBO waiter = new WaiterBI().GetWaiter(trans.WaiterID); + string BillText; + try + { + BillText = string.Format("\n\rWAITER WAITER WAITER WAITER WAITER"); + BillText += string.Format("\n\rWAITER WAITER WAITER WAITER WAITER"); + BillText += DrawLine; + BillText += string.Format("\n\rKOT ID : {0,-13} {1:dd-MMM-yyyy HH:mm}", trans.KotID, trans.Date); + BillText += string.Format("\n\rTable No.: {0} / {1}", trans.TableID, waiter.Name); + BillText += DrawLine; + BillText += "\n\r Qty. x Name "; + BillText += DrawLine; + foreach (SalesBillItemBO item in billItems) + { + Decimal additional = item.Quantity - item.Printed; + if (additional > 0) + { + BillText += string.Format("\n\r{0,6} x {1,-33}", additional, item.Name); + } + } + BillText += DrawLine; + if (trans.Narration != "") + { + BillText += "\n\r" + FormatText(trans.Narration, 42, false, Align.Centre); + BillText += DrawLine; + } + BillText += CutPrinter; + return BillText; + } + catch (Exception ex) + { + throw ex; + } + } + private static string DesignPickupKot(SaleVoucherBO trans, List billItems) + { + WaiterBO waiter = new WaiterBI().GetWaiter(trans.WaiterID); + string BillText; + try + { + BillText = string.Format("\n\rPICK-UP PICK-UP PICK-UP PICK-UP PICK-UP"); + BillText += string.Format("\n\rPICK-UP PICK-UP PICK-UP PICK-UP PICK-UP"); + BillText += DrawLine; + BillText += string.Format("\n\rBill No: {0,-13}{0:dd-MMM-yyyy HH:mm}" + trans.KotID, trans.Date); + BillText += string.Format("\n\rTable No.: {0} / {1}", trans.TableID, waiter.Name); + BillText += DrawLine; + BillText += "\n\r Qty. x Name "; + BillText += DrawLine; + foreach (SalesBillItemBO item in billItems) + { + Decimal additional = item.Quantity - item.Printed; + if (additional > 0) + { + BillText += string.Format("\n\r{0,6} x {1,-33}", additional, item.Name); + } + } + BillText += DrawLine; + if (trans.Narration != "") + { + BillText += "\n\r" + FormatText(trans.Narration, 42, false, Align.Centre); + BillText += DrawLine; + } + BillText += CutPrinter; + return BillText; + } + catch (Exception ex) + { + throw ex; + } + } + private static string DesignCustomerKot(SaleVoucherBO trans, List billItems) + { + WaiterBO waiter = new WaiterBI().GetWaiter(trans.WaiterID); + string BillText; + try + { + BillText = string.Format("\n\r Counter / Order Slip "); + BillText += DrawLine; + BillText += string.Format("\n\rBill No: {0,-13}{0:dd-MMM-yyyy HH:mm}" + trans.KotID, trans.Date); + BillText += string.Format("\n\rTable No.: {0} / {1}", trans.TableID, waiter.Name); + BillText += DrawLine; + BillText += "\n\r Qty. x Name "; + BillText += DrawLine; + foreach (SalesBillItemBO item in billItems) + { + Decimal additional = item.Quantity - item.Printed; + if (additional > 0) + { + BillText += string.Format("\n\r{0,6} x {1,-33}", additional, item.Name); + } + } + BillText += DrawLine; + if (trans.Narration != "") + { + BillText += "\n\r" + FormatText(trans.Narration, 42, false, Align.Centre); + BillText += DrawLine; + } + BillText += CutPrinter; + return BillText; + } + catch (Exception ex) + { + throw ex; + } + } + + private static string DesignBill(SaleVoucherBO trans, List billItems) + { + UserBO cashier = new UserBI().GetUser(trans.UserID); + WaiterBO waiter = new WaiterBI().GetWaiter(trans.WaiterID); + CustomerBO customer = new CustomerBI().GetCustomer(trans.CustomerID); + String billNo = trans.BillID.Substring(trans.BillID.IndexOf("-") + 1); + String BillText = ""; + BillText = "\n\r" + FormatText("Bengali Sweet House", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("+ V2C Multi Cuisine", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("SCO 1, Pocket 1, Manimajra, Chandigarh", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("A Unit of AA Herbal Biotech Pvt. Ltd.", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("TIN: 04400023630", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("Retail Invoice", 42, false, Align.Centre); + BillText += "\n\r"; + BillText += "\n\r" + "Bill No: " + FormatText(billNo, 13, false, Align.Centre) + string.Format("{0:dd-MMM-yyyy HH:mm:ss}", trans.Date); + BillText += "\n\r" + "Table No.: " + trans.TableID; + BillText += "\n\r" + "------------------------------------------"; + BillText += "\n\r" + "Qty. Particulars Price Amount"; + BillText += "\n\r" + "------------------------------------------"; + foreach (SalesBillItemBO item in billItems) + { + if (Math.Round((item.Price * (1 + item.Tax)), 0) == 1) + { + BillText += "\n\r" + " "; + BillText += FormatText(item.Name, 22, false, Align.Left) + " "; + BillText += " "; + BillText += FormatBillNum(item.Price * item.Quantity, 6); + } + else + { + BillText += "\n\r" + FormatBillNum(item.Quantity, 5) + " "; + BillText += FormatText(item.Name, 22, false, Align.Left) + " "; + BillText += FormatBillNum(item.Price, 6) + " "; + BillText += FormatBillNum(item.Price * item.Quantity, 6); + } + } + BillText += "\n\r" + "------------------------------------------"; + if (billItems.Sum(b => b.TaxAmount) != 0) + { + BillText += "\n\r" + FormatText("VAT : ", 33, false, Align.Right) + FormatBillNum(billItems.Sum(b => b.TaxAmount), 9); + } + if (billItems.Sum(b => b.DiscountAmount) != 0) + { + BillText += "\n\r" + FormatText("Discount : ", 33, false, Align.Right) + FormatBillNum(billItems.Sum(b => b.DiscountAmount), 9); + } + + BillText += string.Format("\n\r Final Amount : {0,9:#,##0.00;(#,##0.00);0}", Math.Round(billItems.Sum(b => b.Value), 0)); + BillText += DrawLine; + if (trans.Narration != "") + { + BillText += "\n\r" + FormatText(trans.Narration, 42, false, Align.Centre); + BillText += DrawLine; + } + if (customer.Name != "Cash") + { + BillText += "\n\r" + customer.Name; + BillText += string.Format("\n\r{0}\n\r{1}", customer.Phone, customer.Address); + BillText += DrawLine; + } + BillText += "\n\r" + "Cashier : " + cashier.Name + " / " + waiter.Name; + BillText += "\n\r" + " For Home Delivery: 0172-3242030, 3243040 "; + BillText += CutPrinter; + return BillText; + } + + private static string FormatText(string inputString, int width, Boolean multiline, Align alignment) + { + if ((multiline) && (inputString.Length > width)) + { + string newString = ""; + int lines = Convert.ToInt32(Math.Floor(Convert.ToDecimal(inputString.Length / width))); + for (int i = 0; i < lines; i++) + newString += inputString.Substring(i * width, width) + "\n\r"; + newString += FormatText(inputString.Substring(lines * width), width, multiline, alignment); + return newString; + } + else if (inputString.Length > width) + return inputString.Substring(0, width); + else if (alignment == Align.None) + return inputString; + else if (alignment == Align.Left) + return string.Format("{0,-" + width.ToString() + "}", inputString); + else if (alignment == Align.Centre) + { + int left; + left = Convert.ToInt32(Math.Ceiling(Convert.ToDouble((width - inputString.Length) / 2))) + inputString.Length; + inputString = string.Format("{0,-" + left.ToString() + "}", inputString); + return string.Format("{0," + width.ToString() + "}", inputString); + } + else if (alignment == Align.Right) + return string.Format("{0," + width.ToString() + "}", inputString); + else + return inputString; + } + + private static string FormatBillNum(decimal Amount, int Length) + { + string Temp = String.Format("{0:#,##0.00;(#,##0.00);0}", Amount); + return string.Format("{0," + Length.ToString() + "}", Temp); + } + + private static bool PrintRAW(string Text, string DocumentName) + { + string printerName = System.Configuration.ConfigurationManager.AppSettings["Printer"].ToString().Trim(); + try + { + if (!RawPrinterHelper.PrintString(printerName, DocumentName, Text, new char[] { ';' })) + { + GC.Collect(); + System.Windows.Forms.MessageBox.Show("Error in PrintRAW Function. Please Report immediately"); + } + } + catch (Exception ex) + { + throw ex; + } + return true; + } + + #region Print Cash Total + public static Boolean PrintCash(Dictionary amount) + { + string printText; + int total = 0; + try + { + printText = FormatText(CurrentUser.user.Name, 42, false, Align.Centre); + printText += DrawLine; + printText += "\n\r" + FormatText(string.Format("{0:dd-MMM-yyyy HH:mm:ss}", DateTime.Now), 42, false, Align.Centre); + foreach (int key in amount.Keys.OrderByDescending(k => k)) + { + printText += CashLine(amount, key); + total += amount[key] * key; + } + printText += "\n\r" + DrawEqual; + printText += string.Format("\n\r Total = {0,10:#,##0}", total); + printText += DrawLine; + printText += CutPrinter; + return PrintRAW(printText, "Closing/Opening for " + CurrentUser.user.Name); + } + catch (Exception ex) + { + throw ex; + } + + } + public static Boolean PrintSale(List det, DateTime startDate, DateTime endDate) + { + string printText; + try + { + printText = FormatText(CurrentUser.user.Name, 42, false, Align.Centre); + printText += DrawLine; + printText += "\n\r" + FormatText(string.Format("{0:dd-MMM-yyyy HH:mm:ss}", DateTime.Now), 42, false, Align.Centre); + printText += "\n\r" + FormatText(string.Format("{0:dd-MMM-yyyy} to {1:dd-MMM-yyyy}", startDate, endDate), 42, false, Align.Centre); + printText += DrawLine; + foreach (SalesAnalysisBO d in det) + { + if (d.Section.Length > 30) + d.Section = d.Section.Substring(0, 30); + printText += string.Format("\n\r{0,-22} {1,9:#,##0} {2,9:#,##0}", d.Section, d.Net, d.Gross); + printText += DrawLine; + } + printText += DrawEqual; + printText += CutPrinter; + return PrintRAW(printText, "Sale Detail " + CurrentUser.user.Name); + } + catch (Exception ex) + { + throw ex; + } + + } + + private static string CashLine(Dictionary amount, int key) + { + if (amount.ContainsKey(key)) + return string.Format("\n\r{0,5:#,##0} x {1,10:#,##0} = {2,10:#,##0}", key, amount[key], key * amount[key]); + else + return string.Empty; + } + #endregion + + public static Boolean PrintAdvance(string Advance, string Narration) + { + String BillText; + try + { + BillText = "\n\r" + FormatText("Bengali Sweet House", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("+ V2C Multi Cuisine", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("SCO 1, Pocket 1, Manimajra, Chandigarh", 42, false, Align.Centre); + BillText += "\n\r" + FormatText("A Unit of AA Herbal Biotech Pvt. Ltd.", 42, false, Align.Centre); + BillText += DrawLine; + BillText += "\n\r" + FormatText(string.Format("{0:dd-MMM-yyyy HH:mm:ss}", DateTime.Now), 42, false, Align.Centre); + BillText += "\n\r" + FormatText("Received Rs. " + Advance + " as advance.", 42, false, Align.Centre); + BillText += DrawLine; + if (Narration != "") BillText += "\n\r" + FormatText(Narration, 42, false, Align.Centre); + BillText += DrawLine; + BillText += "\n\r" + FormatText("Thanking you " + CurrentUser.user.Name, 42, false, Align.Left); + BillText += "\n\r"; + BillText += "\n\r"; + BillText += "\n\r"; + BillText += "\n\r"; + BillText += "\n\r"; + BillText += "Signed" + "\n\r"; + BillText += "\n\r"; + BillText += CutPrinter; + BillText += "\n\r" + BillText; + return PrintRAW(BillText, "Closing/Opening for " + CurrentUser.user.Name); + } + catch (Exception ex) + { + throw ex; + } + + } + + public static Boolean PrintClosing(CheckoutBI details) + { + string BillText; + try + { + BillText = FormatText(string.Format("{0} Checkout By {1}", details.Cashier, details.Manager), 42, false, Align.Centre); + BillText += string.Format("{0:dd-MMM-yy} To {1:dd-MMM-yy} @ {2:dd-MMM-yyyy HH:mm}", details.StartDate, details.FinishDate, DateTime.Now); + BillText += DrawLine; + BillText += string.Format("\n\rOpening : {0,26:#,##0.00}", details.Opening); + BillText += string.Format("\n\rReceipts : {0,26:#,##0.00}", details.Receipts); + BillText += string.Format("\n\rAdvance Rcv. : {0,26:#,##0.00}", details.AdvanceReceipts); + BillText += string.Format("\n\rCC Receipts : {0,26:#,##0.00}", details.CCReceipts); + BillText += string.Format("\n\rAdvance Adj. : {0,26:#,##0.00}", details.AdvanceAdjusted); + BillText += string.Format("\n\rPayments : {0,26:#,##0.00}", details.CashPayments); + BillText += string.Format("\n\rAddl. Voids : {0,26:#,##0.00}", details.AdditionalVoids); + BillText += string.Format("\n\rVoids in Sys. : {0,26:#,##0.00}", details.VoidsInSystem); + BillText += string.Format("\n\rPending Bills : {0,26:#,##0.00}", details.PendingBills); + BillText += string.Format("\n\rNet Sales : {0,26:#,##0.00}", details.NetSales); + BillText += string.Format("\n\rClosing Bal. : {0,26:#,##0.00}", details.ClosingBalance); + BillText += string.Format("\n\rCash Dep. : {0,26:#,##0.00}", details.CashDeposited); + BillText += DrawLine; + BillText += string.Format("\n\rOld Pending : {0,26:#,##0.00}", details.OldPending); + BillText += string.Format("\n\rOld Receipts : {0,26:#,##0.00}", details.OldReceipts); + BillText += string.Format("\n\rOld Voided : {0,26:#,##0.00}", details.OldVoided); + BillText += DrawEqual; + BillText += "\n\r" + FormatText(details.Status, 42, false, Align.Centre); + BillText += DrawEqual; + BillText += string.Format("\n\rActive Cashiers : {0}", details.Cashiers); + + if (details.PendingString.Length > 0) + BillText += details.PendingString; + + if (details.CCString.Length > 0) + BillText += details.CCString; + + if (details.VoidsString.Length > 0) + BillText += details.VoidsString; + + if (details.PaymentString.Length > 0) + BillText += details.PaymentString; + + if (details.DiscountString.Length > 0) + BillText += details.DiscountString; + BillText += CutPrinter; + return PrintRAW(BillText, "Closing"); + } + catch (Exception ex) + { + throw ex; + } + } + + public static string FormatPrintNum(string InputString) + { + if (InputString == "") return "0.00"; + //return FormatText(FormatNumber(InputString.Trim, 2, TriState.UseDefault, TriState.True, TriState.True), 24, False, Align.Right); + return FormatText(InputString, 24, false, Align.Right); + } + + public static void PrintBill(bool bill, Guid voucherID, List list) + { + SaleVoucherBO trans = new SaleVoucherBO(); + List iList = new List(); + new SaleVoucherBI().GetSaleVoucher(voucherID, ref trans, ref iList); + PrintRAW(DesignBill(trans, list), "Bill"); + } + + public static void PrintWaiterKot(string p, Guid voucherID, List list) + { + SaleVoucherBO trans = new SaleVoucherBO(); + List iList = new List(); + new SaleVoucherBI().GetSaleVoucher(voucherID, ref trans, ref iList); + if (list.Count(i => (i.Quantity - i.Printed) > 0) > 0) + { + PrintRAW(DesignWaiterKot(trans, list), "KOT"); + PrintRAW(DesignPickupKot(trans, list), "KOT"); + } + } + public static void PrintCustomerKot(string p, Guid voucherID, List list) + { + SaleVoucherBO trans = new SaleVoucherBO(); + List iList = new List(); + new SaleVoucherBI().GetSaleVoucher(voucherID, ref trans, ref iList); + if (list.Count(i => (i.Quantity - i.Printed) > 0) > 0) + { + PrintRAW(DesignCustomerKot(trans, list), "KOT"); + } + } + + + } +} diff --git a/Tanshu.Accounts.SqlDAO/AdvanceDAO.cs b/Tanshu.Accounts.SqlDAO/AdvanceDAO.cs new file mode 100644 index 0000000..38616a8 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/AdvanceDAO.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class AdvanceDAO : BaseDAO, IAdvanceDAO + { + public AdvanceDAO(IConnectionDAO connection) + : base(connection) + { } + + public void Insert(AdvanceBO advance) + { + SqlCommand cmd = new SqlCommand(@" +SET @AdvanceID = NEWID(); +INSERT INTO Advances (AdvanceID, Amount, Narration, CashierIn, DateIn, CashierOut, DateOut) +VALUES (@AdvanceID, @Amount, @Narration, @CashierIn, @DateIn, @CashierOut, @DateOut) +"); + cmd.Parameters.Add("@AdvanceID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@AdvanceID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Amount", advance.Amount); + cmd.Parameters.AddWithValue("@Narration", advance.Narration); + cmd.Parameters.AddWithValue("@CashierIn", advance.CashierIn); + cmd.Parameters.AddWithValue("@DateIn", advance.DateIn); + if (advance.CashierOut.HasValue) + cmd.Parameters.AddWithValue("@CashierOut", advance.CashierOut); + else + cmd.Parameters.AddWithValue("@CashierOut", DBNull.Value); + if (advance.DateOut.HasValue) + cmd.Parameters.AddWithValue("@DateOut", advance.DateOut); + else + cmd.Parameters.AddWithValue("@DateOut", DBNull.Value); + connection.ExecuteNonQuery(cmd); + advance.AdvanceID = (Guid)cmd.Parameters["@AdvanceID"].Value; + } + public List GetAdvances(DateTime fromDate, DateTime toDate, bool all) + { + string query = "SELECT a.*, u.Name AS Cashier FROM Advances a INNER JOIN Users u ON a.CashierIn = u.UserID WHERE DateIn BETWEEN @StartDate AND @FinishDate"; + if (!all) + query += " AND CashierOut IS NULL"; + SqlCommand cmd = new SqlCommand(query); + cmd.Parameters.AddWithValue("@StartDate", fromDate); + cmd.Parameters.AddWithValue("@FinishDate", toDate); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + public void Adjust(Guid advanceID, Guid userID) + { + SqlCommand cmd = new SqlCommand("UPDATE Advances SET CashierOut = @CashierOut, DateOut = GETDATE() WHERE AdvanceID = @AdvanceID"); + cmd.Parameters.AddWithValue("@AdvanceID", advanceID); + cmd.Parameters.AddWithValue("@CashierOut", userID); + connection.ExecuteNonQuery(cmd); + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/BaseDAO.cs b/Tanshu.Accounts.SqlDAO/BaseDAO.cs new file mode 100644 index 0000000..525832b --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/BaseDAO.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.SqlDAO +{ + public abstract class BaseDAO : IDisposable + { + protected IConnectionDAO connection; + protected BaseDAO(IConnectionDAO connection) + { + this.connection = connection; + } + + + #region IDisposable Members + private bool disposed = false; + ~BaseDAO() + { + // call Dispose with false. Since we're in the + // destructor call, the managed resources will be + // disposed of anyways. + Dispose(false); + } + public void Dispose() + { + // dispose of the managed and unmanaged resources + Dispose(true); + // tell the GC that the Finalize process no longer needs + // to be run for this object. + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposeManagedResources) + { + // process only if mananged and unmanaged resources have + // not been disposed of. + if (!this.disposed) + { + Trace.WriteLine("Tanshu.WebAccounts.SqlDAO.BaseDAO: Resources not disposed"); + if (disposeManagedResources) + { + Trace.WriteLine("Tanshu.WebAccounts.SqlDAO.BaseDAO: Disposing managed resources"); + // dispose managed resources + //if (connection != null) + //{ + // connection.Dispose(); + // connection = null; + //} + } + // dispose unmanaged resources + + Trace.WriteLine("Tanshu.WebAccounts.SqlDAO.BaseDAO: Disposing unmanaged resouces"); + disposed = true; + } + else + { + Trace.WriteLine("Tanshu.WebAccounts.SqlDAO.BaseDAO: Resources already disposed"); + } + } + + #endregion + } +} diff --git a/Tanshu.Accounts.SqlDAO/CheckoutDAO.cs b/Tanshu.Accounts.SqlDAO/CheckoutDAO.cs new file mode 100644 index 0000000..e836015 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/CheckoutDAO.cs @@ -0,0 +1,377 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using System.Data; +using Tanshu.Accounts.DAOFactory; +using Tanshu.Data.DAO; + +namespace Tanshu.Accounts.SqlDAO +{ + public class CheckoutDAO : BaseDAO, ICheckoutDAO + { + private DateTime startDate; + private DateTime finishDate; + private Guid userID; + public CheckoutDAO(DateTime startDate, DateTime finishDate, Guid userID, IConnectionDAO connection) + : base(connection) + { + this.startDate = startDate; + this.finishDate = finishDate; + this.userID = userID; + } + public decimal GetPending(ref string info) + { + decimal amount = 0; + info = ""; + + string query = @" +SELECT t.Date, s.BillID, c.Name, SUM(i.Amount) AS Amount, SUM(Quantity * Rate * Discount) AS Discount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Customers c ON s.CustomerID = c.CustomerID +WHERE t.Type = 'S' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID +AND s.Void = 0 AND s.Paid = 0 +GROUP BY t.Date, c.Name, s.BillID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + if (dr.Read()) + { + info = "\n\r--- Pending Bills ------------------------"; + + do + { + amount += dr.GetDecimal(3); + info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", dr.GetDateTime(0), dr.GetString(1), dr.GetString(2)); + info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", dr.GetDecimal(3), dr.GetDecimal(4)); + info += "\n\r------------------------------------------"; + } while (dr.Read()); + } + } + } + return amount; + } + public decimal GetCreditCard(ref string info) + { + decimal amount = 0; + info = ""; + + string query = @" +SELECT t.Date, s.BillID, c.Name, SUM(i.Amount) AS Amount, SUM(Quantity * Rate * Discount) AS Discount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Customers c ON s.CustomerID = c.CustomerID +WHERE t.Type = 'S' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID +AND s.Void = 0 AND s.Paid = 1 AND s.CreditCard = 1 +GROUP BY t.Date, c.Name, s.BillID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + if (dr.Read()) + { + info = "\n\r--- Credit Card Bills --------------------"; + + do + { + amount += dr.GetDecimal(3); + info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", dr.GetDateTime(0), dr.GetString(1), dr.GetString(2)); + info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", dr.GetDecimal(3), dr.GetDecimal(4)); + info += "\n\r------------------------------------------"; + } while (dr.Read()); + } + } + } + return amount; + } + public decimal GetVoids(ref string info) + { + decimal amount = 0; + info = ""; + + string query = @" +SELECT t.Date, s.BillID, c.Name, SUM(i.Amount) AS Amount, SUM(Quantity * Rate * Discount) AS Discount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Customers c ON s.CustomerID = c.CustomerID +WHERE t.Type = 'S' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID +AND s.Void = 1 +GROUP BY t.Date, c.Name, s.BillID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + if (dr.Read()) + { + info = "\n\r--- Void Bills ---------------------------"; + + do + { + amount += dr.GetDecimal(3); + info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", dr.GetDateTime(0), dr.GetString(1), dr.GetString(2)); + info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", dr.GetDecimal(3), dr.GetDecimal(4)); + info += "\n\r------------------------------------------"; + } while (dr.Read()); + } + } + } + return amount; + } + public decimal GetOpenings() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Payments WHERE Type = 'Opening' AND Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetReceipts() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Payments WHERE Type = 'Receipt' AND Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetPayments() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Payments WHERE Type = 'Payment' AND Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetAdditionalVoids() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Payments WHERE Type = 'Additional Void' AND Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetRetainedOvernight() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Payments WHERE Type = 'Retained at Night' AND Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetAdvancesReceived() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Advances WHERE DateIn BETWEEN @StartDate AND @FinishDate AND CashierIn = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetAdvancesAdjusted() + { + string query = "SELECT ISNULL(SUM(Amount), 0) FROM Advances WHERE DateOut BETWEEN @StartDate AND @FinishDate AND CashierOut = @UserID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public string GetPaymentString() + { + string paymentString = ""; + string query = "SELECT Date, Type, Amount, Narration FROM Payments WHERE Date BETWEEN @StartDate AND @FinishDate AND CashierID = @UserID ORDER BY Type"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + string currentType = ""; + while (dr.Read()) + { + if (currentType != dr.GetString(1)) + { + paymentString += string.Format("\n\r--- {0,-30} -------", dr.GetString(1)); + currentType = dr.GetString(1); + } + paymentString += string.Format("\n\r{0:HH:mm} => {1:#0.00} => {2}", dr.GetDateTime(0), dr.GetDecimal(2), dr.GetString(3)); + } + } + } + return paymentString; + } + public string GetActiveCashiers() + { + string cashiers = ""; + string query = @" +SELECT Name FROM Users WHERE UserID IN +( +SELECT DISTINCT UserID FROM Vouchers WHERE Date BETWEEN @StartDate AND @FinishDate +UNION +SELECT DISTINCT CashierID FROM Payments WHERE Date BETWEEN @StartDate AND @FinishDate +UNION +SELECT DISTINCT CashierIn FROM Advances WHERE DateIn BETWEEN @StartDate AND @FinishDate +UNION +SELECT DISTINCT CashierOut FROM Advances WHERE DateOut BETWEEN @StartDate AND @FinishDate +)"; + + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + { + cashiers += string.Format("{0}, ", dr.GetString(0)); + } + } + } + return cashiers; + } + public decimal GetNetSales() + { + string query = @" +SELECT ISNULL(SUM(i.Amount), 0) AS Amount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Customers c ON s.CustomerID = c.CustomerID +WHERE t.Type = 'S' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID +AND s.Void = 0 AND s.Paid = 1 +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetDiscountsBills(ref string info) + { + decimal amount = 0; + info = ""; + + string query = @" +SELECT t.Date, s.BillID, c.Name, SUM(i.Amount) AS Amount, SUM(Quantity * Rate * Discount) AS Discount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Customers c ON s.CustomerID = c.CustomerID +WHERE t.Type = 'S' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID +AND s.Void = 1 +GROUP BY t.Date, c.Name, s.BillID, i.Discount +HAVING i.Discount > .2 +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@UserID", userID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + if (dr.Read()) + { + info = "\n\r--- High Discounts Bills -----------------"; + + do + { + amount += dr.GetDecimal(3); + info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", dr.GetDateTime(0), dr.GetString(1), dr.GetString(2)); + info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", dr.GetDecimal(3), dr.GetDecimal(4)); + info += "\n\r------------------------------------------"; + } while (dr.Read()); + } + } + } + return amount; + } + + public decimal GetOldPending() + { + string query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' +AND s.Void = 0 +AND s.Paid = 0 +AND t.LastEditDate < @StartDate AND t.UserID = @UserID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetOldReceipts() + { + string query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' +AND s.Void = 0 +AND s.Paid = 1 +AND t.CreationDate < @StartDate AND t.LastEditDate >= @StartDate AND t.UserID = @UserID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + public decimal GetOldVoided() + { + string query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' +AND s.Void = 1 +AND t.CreationDate < @StartDate AND t.LastEditDate >= @StartDate AND t.UserID = @UserID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@UserID", userID); + return (decimal)connection.ExecuteScalar(cmd); + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/CustomerDAO.cs b/Tanshu.Accounts.SqlDAO/CustomerDAO.cs new file mode 100644 index 0000000..229ffc5 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/CustomerDAO.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class CustomerDAO : BaseDAO, ICustomerDAO + { + public CustomerDAO(IConnectionDAO connection) + : base(connection) + { } + + public void Insert(CustomerBO customer) + { + using (SqlCommand cmd = new SqlCommand(@" +SET @CustomerID = NEWID(); +SELECT @Code = ISNULL(MAX(Code), 0) + 1 FROM Customers; +INSERT INTO Customers (CustomerID, Code, Name, LedgerID, Address, Important, Phone, Remarks) VALUES (@CustomerID, @Code, @Name, @LedgerID, @Address, @Important, @Phone, @Remarks)")) + { + cmd.Parameters.Add("@CustomerID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@CustomerID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@Code", System.Data.SqlDbType.Int); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + + cmd.Parameters.AddWithValue("@Name", customer.Name); + cmd.Parameters.AddWithValue("@LedgerID", customer.LedgerID); + cmd.Parameters.AddWithValue("@Address", customer.Address); + cmd.Parameters.AddWithValue("@Important", customer.Important); + cmd.Parameters.AddWithValue("@Phone", customer.Phone); + cmd.Parameters.AddWithValue("@Remarks", customer.Remarks); + connection.ExecuteNonQuery(cmd); + customer.CustomerID = (Guid)cmd.Parameters["@CustomerID"].Value; + customer.Code = (int)cmd.Parameters["@Code"].Value; + } + } + public void Update(CustomerBO customer) + { + using (SqlCommand cmd = new SqlCommand(@"UPDATE Customers SET Code = @Code, Name = @Name, LedgerID = @LedgerID, Address = @Address, Important = @Important, Phone = @Phone, Remarks = @Remarks WHERE CustomerID = @CustomerID")) + { + cmd.Parameters.AddWithValue("@CustomerID", customer.CustomerID); + cmd.Parameters.AddWithValue("@Code", customer.Code); + cmd.Parameters.AddWithValue("@Name", customer.Name); + cmd.Parameters.AddWithValue("@LedgerID", customer.LedgerID); + cmd.Parameters.AddWithValue("@Address", customer.Address); + cmd.Parameters.AddWithValue("@Important", customer.Important); + cmd.Parameters.AddWithValue("@Phone", customer.Phone); + cmd.Parameters.AddWithValue("@Remarks", customer.Remarks); + connection.ExecuteNonQuery(cmd); + } + } + public void Delete(Guid customerID) + { + using (SqlCommand cmd = new SqlCommand("DELETE FROM Customers WHERE CustomerID = @CustomerID")) + { + cmd.Parameters.AddWithValue("@CustomerID", customerID); + connection.ExecuteNonQuery(cmd); + } + } + + public CustomerBO GetCustomer(Guid customerID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Customers Where CustomerID=@CustomerID "); + cmd.Parameters.AddWithValue("@CustomerID", customerID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public List GetFilteredCustomers(Dictionary filter) + { + string query = ""; + string[] filters = filter["Universal"].Split(' '); + if ((filters != null) && (filters.Length > 0)) + { + query = "SELECT CustomerID, Code, Name, LedgerID, Address, Important, Phone, Remarks FROM Customers WHERE "; + foreach (string fil in filters) + { + query += string.Format("(Name LIKE '%{0}%' OR Address LIKE '%{0}%' OR Phone LIKE '%{0}%' OR Remarks LIKE '%{0}%') AND ", fil); + } + query = query.Substring(0, query.Length - 5); + } + else + { + query = "SELECT CustomerID, Code, Name, LedgerID, Address, Important, Phone, Remarks FROM Customers"; + } + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(query)); + } + public List GetCustomerLedgers() + { + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader("SELECT * FROM Ledgers WHERE Type IN ('B', 'D') ORDER BY Name")); + } + public List GetCustomers() + { + Dictionary filter = new Dictionary(); + filter.Add("Universal", ""); + return GetFilteredCustomers(filter); + } + public List GetCustomers(Guid customerID) + { + string query = "SELECT CustomerID, Code, Name, LedgerID, Address, Important, Phone, Remarks FROM Customers WHERE CustomerID = @CustomerID"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@CustomerID", customerID); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/Database.cs b/Tanshu.Accounts.SqlDAO/Database.cs new file mode 100644 index 0000000..82ee6a3 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Database.cs @@ -0,0 +1,10 @@ +using System.Configuration; + +namespace Tanshu.Accounts.SqlDAO +{ + internal static class Database + { + internal static string ConnectionString + { get { return ConfigurationManager.ConnectionStrings["connection"].ConnectionString; } } + } +} diff --git a/Tanshu.Accounts.SqlDAO/InventoryDAO.cs b/Tanshu.Accounts.SqlDAO/InventoryDAO.cs new file mode 100644 index 0000000..04617b9 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/InventoryDAO.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class InventoryDAO : BaseDAO, IInventoryDAO + { + public InventoryDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool Insert(InventoryBO inventory) + { + using (SqlCommand cmd = new SqlCommand(@" +SET @InventoryID = NEWID(); +INSERT INTO Inventory (InventoryID, VoucherID, ProductID, ComplexProductID, Quantity, Rate, Tax, Discount, IsRateFinal) VALUES (@InventoryID, @VoucherID, @ProductID, @ComplexProductID, @Quantity, @Rate, @Tax, @Discount, @IsRateFinal); +SELECT @timestamp = timestamp, @Amount = Amount FROM Inventory WHERE InventoryID = @InventoryID; +")) + { + cmd.Parameters.Add("@InventoryID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@InventoryID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@VoucherID", inventory.VoucherID); + cmd.Parameters.AddWithValue("@ProductID", inventory.ProductID); + if (inventory.ComplexProductID.HasValue) + cmd.Parameters.AddWithValue("@ComplexProductID", inventory.ComplexProductID); + else + cmd.Parameters.AddWithValue("@ComplexProductID", DBNull.Value); + cmd.Parameters.AddWithValue("@Quantity", inventory.Quantity); + cmd.Parameters.AddWithValue("@Rate", inventory.Rate); + cmd.Parameters.AddWithValue("@Tax", inventory.Tax); + cmd.Parameters.AddWithValue("@Discount", inventory.Discount); + cmd.Parameters.Add("@Amount", System.Data.SqlDbType.Decimal); + cmd.Parameters["@Amount"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@IsRateFinal", inventory.IsRateFinal); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + inventory.InventoryID = (Guid)cmd.Parameters["@InventoryID"].Value; + inventory.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public bool Update(InventoryBO inventory) + { + using (SqlCommand cmd = new SqlCommand(@" +UPDATE Inventory SET VoucherID = @VoucherID, ProductID = @ProductID, ComplexProductID = @ComplexProductID, Quantity = @Quantity, Rate = @Rate, Tax = @Tax, Discount = @Discount, IsRateFinal = @IsRateFinal WHERE InventoryID = @InventoryID; +SELECT @timestamp = timestamp, @Amount = Amount FROM Inventory WHERE InventoryID = @InventoryID;")) + { + cmd.Parameters.AddWithValue("@InventoryID", inventory.InventoryID); + cmd.Parameters.AddWithValue("@VoucherID", inventory.VoucherID); + cmd.Parameters.AddWithValue("@ProductID", inventory.ProductID); + if (inventory.ComplexProductID.HasValue) + cmd.Parameters.AddWithValue("@ComplexProductID", inventory.ComplexProductID); + else + cmd.Parameters.AddWithValue("@ComplexProductID", DBNull.Value); + cmd.Parameters.AddWithValue("@Quantity", inventory.Quantity); + cmd.Parameters.AddWithValue("@Rate", inventory.Rate); + cmd.Parameters.AddWithValue("@Tax", inventory.Tax); + cmd.Parameters.AddWithValue("@Discount", inventory.Discount); + cmd.Parameters.Add("@Amount", System.Data.SqlDbType.Decimal); + cmd.Parameters["@Amount"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@IsRateFinal", inventory.IsRateFinal); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + inventory.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public bool Delete(Guid voucherID) + { + using (SqlCommand cmd = new SqlCommand("DELETE from Inventory where VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + public bool Delete(Guid voucherID, Guid productID) + { + using (SqlCommand cmd = new SqlCommand("DELETE from Inventory where VoucherID = @VoucherID and ProductID = @ProductID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@InventoryID", productID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + + public List GetInventories(Guid voucherID) + { + SqlCommand cmd = new SqlCommand("SELECT p.Name + ' (' + p.Units +')' AS ProductName, i.* FROM Inventory i INNER JOIN Products p ON i.ProductID = p.ProductID WHERE VoucherID = @VoucherID ORDER BY timestamp"); + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/LedgerDAO.cs b/Tanshu.Accounts.SqlDAO/LedgerDAO.cs new file mode 100644 index 0000000..7fbc597 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/LedgerDAO.cs @@ -0,0 +1,102 @@ + using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class LedgerDAO : BaseDAO , ILedgerDAO + { + public LedgerDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool Insert(LedgerBO ledger) + { + ledger.LedgerID = Guid.NewGuid(); + using (SqlCommand cmd = new SqlCommand(@" +SELECT @Code = ISNULL(MAX(Code),0) + 1 FROM Ledgers WHERE Type = @Type; +INSERT INTO Ledgers (LedgerID, Code, Name, Type, ParentLedgerID, CostCenterID) VALUES (@LedgerID, @Code, @Name, @Type, @ParentLedgerID, @CostCenterID); +SELECT @timestamp = timestamp FROM Ledgers WHERE LedgerID = @LedgerID; +")) + { + cmd.Parameters.AddWithValue("@LedgerID", ledger.LedgerID); + cmd.Parameters.Add("@Code", System.Data.SqlDbType.Int); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Name", ledger.Name); + cmd.Parameters.AddWithValue("@Type", ledger.Type); + if (ledger.ParentLedgerID != new Guid()) + cmd.Parameters.AddWithValue("@ParentLedgerID", ledger.ParentLedgerID); + else + cmd.Parameters.AddWithValue("@ParentLedgerID", DBNull.Value); + cmd.Parameters.AddWithValue("@CostCenterID", ledger.CostCenterID); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + ledger.Code = (int)cmd.Parameters["@Code"].Value; + ledger.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public LedgerBO GetLedger(Guid ledgerID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Ledgers WHERE LedgerID = @LedgerID"); + cmd.Parameters.AddWithValue("@LedgerID", ledgerID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public LedgerBO GetLedger(string name) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Ledgers WHERE Name = @Name"); + cmd.Parameters.AddWithValue("@Name", name); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public List GetLedgers(char type) + { + SqlCommand cmd = new SqlCommand("SELECT c.Name as CostCenter, l.* FROM CostCenters c INNER JOIN Ledgers l ON c.CostCenterID = l.CostCenterID WHERE Type = @Type"); + cmd.Parameters.AddWithValue("@Type", type); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + public bool Delete(Guid ledgerID) + { + using (SqlCommand cmd = new SqlCommand("DELETE FROM Ledgers WHERE LedgerID = @LedgerID")) + { + cmd.Parameters.AddWithValue("@LedgerID", ledgerID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + public bool Update(LedgerBO ledger) + { + + using (SqlCommand cmd = new SqlCommand(@" +UPDATE Ledgers SET Code = @Code, Name = @Name, Type = @Type, ParentLedgerID = @ParentLedgerID, CostCenterID = @CostCenterID WHERE LedgerID = @LedgerID +SELECT @timestamp = timestamp FROM Ledgers WHERE LedgerID = @LedgerID; +")) + { + cmd.Parameters.AddWithValue("@LedgerID", ledger.LedgerID); + cmd.Parameters.AddWithValue("@Code", ledger.Code); + cmd.Parameters.AddWithValue("@Name", ledger.Name); + cmd.Parameters.AddWithValue("@Type", ledger.Type); + if (ledger.ParentLedgerID != new Guid()) + cmd.Parameters.AddWithValue("@ParentLedgerID", ledger.ParentLedgerID); + else + cmd.Parameters.AddWithValue("@ParentLedgerID", DBNull.Value); + cmd.Parameters.AddWithValue("@CostCenterID", ledger.CostCenterID); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + ledger.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public List GetLedgers() + { + string query = "SELECT c.Name as CostCenter, l.* FROM CostCenters c INNER JOIN Ledgers l ON c.CostCenterID = l.CostCenterID WHERE Type <> 'S'"; + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(query)); + } + + } +} diff --git a/Tanshu.Accounts.SqlDAO/ManagementDAO.cs b/Tanshu.Accounts.SqlDAO/ManagementDAO.cs new file mode 100644 index 0000000..6b58822 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/ManagementDAO.cs @@ -0,0 +1,355 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using System.Data; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class ManagementDAO : BaseDAO, IManagementDAO + { + private DateTime startDate; + private DateTime finishDate; + public ManagementDAO(DateTime startDate, DateTime finishDate, IConnectionDAO connection) + : base(connection) + { + this.startDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", startDate)); + this.finishDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", finishDate)); + } + public decimal GetBalance(decimal? tax) + { + string query; + if (tax.HasValue) + query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' AND t.Date BETWEEN @StartDate AND @FinishDate AND s.Void = 0 +AND i.Tax = @Tax +"; + else + query = @" +SELECT ISNULL(SUM(i.Amount), 0) FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' AND t.Date BETWEEN @StartDate AND @FinishDate AND s.Void = 0 +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + if (tax.HasValue) cmd.Parameters.AddWithValue("@Tax", tax); + return (decimal)connection.ExecuteScalar(cmd); + } + + } + public List GetUpdateBillList(decimal tax, bool voided, bool paid, bool creditCard) + { + //Paid = 1, CC = 0, Void = 0 + List list = new List(); + string query = @" +SELECT DISTINCT t.VoucherID +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Date BETWEEN @StartDate AND @FinishDate AND t.Type = 'S' +AND s.Void = @Void and s.Paid = @Paid AND s.CreditCard = @CreditCard AND i.Tax = @Tax"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@Tax", tax); + cmd.Parameters.AddWithValue("@Void", voided); + cmd.Parameters.AddWithValue("@Paid", paid); + cmd.Parameters.AddWithValue("CreditCard", creditCard); + + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + list.Add(dr.GetGuid(0)); + } + } + return list; + } + + public List GetPaidBills() + { + string query = @" + SELECT t.VoucherID, s.TableID AS TableID, + (SELECT SUM(Amount) FROM Inventory WHERE VoucherID = t.VoucherID) AS Amount, + s.BillID, t.CreationDate, u.Name, CAST(0 AS bit), s.KotID, t.LastEditDate, s.Printed + FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID AND s.Paid = 1 AND s.Void = 0 + INNER JOIN Users u ON t.UserID = u.UserID WHERE + t.LastEditDate BETWEEN @StartDate AND @FinishDate ORDER BY t.CreationDate "; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + List outList = new List(); + while (dr.Read()) + { + PendingBillsBO local = new PendingBillsBO(); + + local.voucherID = dr.GetGuid(0); + local.TableID = dr.GetString(1); + if (!dr.IsDBNull(2)) + local.Amount = dr.GetDecimal(2); + local.BillNo = dr.GetString(3); + local.BookingTime = dr.GetDateTime(4); + local.Cashier = dr.GetString(5); + local.Important = dr.GetBoolean(6); + local.Kot = dr.GetString(7); + local.LastEdited = dr.GetDateTime(8); + local.Printed = dr.GetBoolean(9); + outList.Add(local); + } + return outList; + } + } + } + + public decimal Update(Guid voucherID, decimal tax) + { + decimal amt; + using (SqlCommand cmd = new SqlCommand("SELECT ISNULL(SUM(Amount), 0) FROM Inventory WHERE VoucherID = @VoucherID AND Tax = @Tax")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@Tax", tax); + amt = (decimal)connection.ExecuteScalar(cmd); + } + using (SqlCommand cmd = new SqlCommand(@" +DELETE FROM Inventory WHERE VoucherID = @VoucherID; +DELETE FROM SaleVoucher WHERE VoucherID = @VoucherID; +DELETE FROM Vouchers WHERE VoucherID = @VoucherID;")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + connection.ExecuteNonQuery(cmd); + } + return amt; + } + // public static List GetBillList(DateTime? fromDate, DateTime? toDate, decimal? minValue, decimal? maxValue, bool? showVoided) + // { + + // using (ConnectionDAO connection = new ConnectionDAO()) + // { + // string add = " WHERE "; + // string query = @" + //SELECT t.TransactionID AS transactionID, CAST (CASE WHEN Alarm IS NULL THEN 0 ELSE 1 END AS bit) AS Alarm, + //s.Alarm AS AlarmTime, s.TableID, (SELECT SUM(Amount) FROM Inventory i WHERE i.TransactionID = t.TransactionID) AS Amount, + //s.BillID, t.CreationDate AS BookingTime, u.Name AS Cashier, s.Void AS Important, + //s.KotID AS Kot, t.LastEditDate AS LastEdited, s.Printed AS Printed + //FROM BasicTransactions t INNER JOIN TransactionSale s ON t.TransactionID = s.TransactionID + //INNER JOIN Users u ON t.UserID = u.UserID"; + // if (fromDate.HasValue) + // { + // query += add + "t.Date >= @StartDate"; + // add = " AND "; + // } + // if (toDate.HasValue) + // { + // query += add + "t.Date <= @FinishDate"; + // add = " AND "; + // } + // if (minValue.HasValue) + // { + // query += add + "Amount >= @MinValue"; + // add = " AND "; + // } + // if (maxValue.HasValue) + // { + // query += add + "Amount <= @MaxValue"; + // add = " AND "; + // } + // if (showVoided.HasValue) + // { + // query += add + "s.Void = @Void"; + // } + // using (SqlCommand cmd = new SqlCommand(query)) + // { + // if (fromDate.HasValue) + // cmd.Parameters.AddWithValue("@StartDate", fromDate.Value); + // if (toDate.HasValue) + // cmd.Parameters.AddWithValue("@FinishDate", toDate.Value); + // if (minValue.HasValue) + // cmd.Parameters.AddWithValue("@MinValue", minValue.Value); + // if (maxValue.HasValue) + // cmd.Parameters.AddWithValue("@MaxValue", maxValue.Value); + // if (showVoided.HasValue) + // cmd.Parameters.AddWithValue("@Void", showVoided.Value); + // return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + // } + // } + // } + + public void Reorder(ShowProgessDelegate showProgressDelegate) + { + showProgressDelegate(0, 0, 0, "Cleaning up Void Bills"); + using (SqlCommand cmd = new SqlCommand(@" +DELETE FROM Inventory WHERE VoucherID IN ( +SELECT v.VoucherID FROM SaleVoucher s INNER JOIN Vouchers v ON s.VoucherID = v.VoucherID +WHERE s.Void = 1 AND v.Date BETWEEN @StartDate AND @EndDate) + +DELETE FROM SaleVoucher WHERE VoucherID IN ( +SELECT v.VoucherID FROM SaleVoucher s INNER JOIN Vouchers v ON s.VoucherID = v.VoucherID +WHERE s.Void = 1 AND v.Date BETWEEN @StartDate AND @EndDate) + +DELETE FROM Vouchers WHERE VoucherID NOT IN (SELECT VoucherID FROM SaleVoucher) +AND Type = 'S' +")) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@EndDate", finishDate); + connection.ExecuteNonQuery(cmd); + } + List list = new List(); + using (SqlCommand cmd = new SqlCommand(@" +SELECT v.VoucherID, s.BillID, v.Date +FROM Vouchers v INNER JOIN SaleVoucher s ON v.VoucherID = s.VoucherID +WHERE v.Date >= @StartDate AND s.Printed = 1 +ORDER BY Date")) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + { + list.Add(new SaleVoucherBO { VoucherID = dr.GetGuid(0), BillID = dr.GetString(1), Date = dr.GetDateTime(2) }); + } + } + } + if (list.Count == 0) + return; + connection.ExecuteNonQuery("ALTER INDEX [IX_TransactionSale] ON [dbo].[SaleVoucher] DISABLE"); + string billID = list[0].BillID; + for (int i = 1; i < list.Count; i++) + { + billID = GetBillID(billID); + showProgressDelegate(0, list.Count, i, string.Format("Fixing bill no {0}", billID)); + using (SqlCommand cmd = new SqlCommand("UPDATE SaleVoucher SET BillID = @BillID WHERE VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", list[i].VoucherID); + cmd.Parameters.AddWithValue("@BillID", billID); + connection.ExecuteNonQuery(cmd); + } + } + connection.ExecuteNonQuery("ALTER INDEX [IX_TransactionSale] ON [dbo].[SaleVoucher] REBUILD"); + showProgressDelegate(0, list.Count, list.Count, "Cleanup finished"); + + } + private string GetBillID(string billID) + { + decimal id = Convert.ToDecimal(billID.Replace("-", "")); + id++; + billID = id.ToString(); + if (billID.EndsWith("0000")) + billID = (id + 1).ToString(); + if (billID.Length == 5) + billID = "0" + billID; + return billID.Substring(0, 2) + "-" + billID.Substring(2, 4); + } + + + #region Merge Data + public bool MergeData(string sourceDB, string targetDB) + { + DeleteTarget(sourceDB, targetDB); + DateTime lastBillDateTime = GetBillDateTime(sourceDB, targetDB); + connection.ExecuteNonQuery(string.Format("ALTER INDEX [IX_TransactionSale] ON [{0}].[dbo].[SaleVoucher] DISABLE", targetDB)); + CopyData(sourceDB, targetDB); + Clean(sourceDB, targetDB, lastBillDateTime); + connection.ExecuteNonQuery(string.Format("ALTER INDEX [IX_TransactionSale] ON [{0}].[dbo].[SaleVoucher] REBUILD", targetDB)); + return true; + } + private void DeleteTarget(string sourceDB, string targetDB) + { + string query = @" +DELETE FROM {0}.dbo.Inventory WHERE VoucherID IN ( +SELECT v.VoucherID FROM {0}.dbo.SaleVoucher s INNER JOIN {0}.dbo.Vouchers v ON s.VoucherID = v.VoucherID +WHERE v.Date BETWEEN @StartDate AND @EndDate) + +DELETE FROM {0}.dbo.SaleVoucher WHERE VoucherID IN ( +SELECT v.VoucherID FROM {0}.dbo.SaleVoucher s INNER JOIN {0}.dbo.Vouchers v ON s.VoucherID = v.VoucherID +WHERE v.Date BETWEEN @StartDate AND @EndDate) + +DELETE FROM {0}.dbo.Vouchers WHERE VoucherID NOT IN (SELECT VoucherID FROM {0}.dbo.SaleVoucher) +AND Type = 'S' +"; + using (SqlCommand cmd = new SqlCommand(string.Format(query, targetDB))) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@EndDate", finishDate); + connection.ExecuteNonQuery(cmd); + } + } + private DateTime GetBillDateTime(string sourceDB, string targetDB) + { + string query = @" +SELECT TOP 1 v.Date +FROM {0}.dbo.Vouchers v INNER JOIN {0}.dbo.SaleVoucher s ON v.VoucherID = s.VoucherID +WHERE v.Date < @StartDate +ORDER BY Date DESC"; + using (SqlCommand cmd = new SqlCommand(string.Format(query, targetDB))) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + return (DateTime)connection.ExecuteScalar(cmd); + } + } + private void CopyData(string sourceDB, string targetDB) + { + string query = @" +INSERT INTO {0}.dbo.Vouchers (VoucherID, Code, Ref, Date, Narration, UserID, CreationDate, LastEditDate, Type) +SELECT VoucherID, Code, Ref, Date, Narration, UserID, CreationDate, LastEditDate, Type +FROM {1}.dbo.Vouchers WHERE Date BETWEEN @StartDate AND @EndDate; + +INSERT INTO {0}.dbo.SaleVoucher (VoucherID, BillID, TableID, WaiterID, CustomerID, Paid, Void, VoidReason, Printed, Alarm, KotID, CreditCard, IsImportant) +SELECT VoucherID, BillID, TableID, WaiterID, CustomerID, Paid, Void, VoidReason, Printed, Alarm, KotID, CreditCard, IsImportant +FROM {1}.dbo.SaleVoucher WHERE VoucherID IN ( +SELECT v.VoucherID FROM {1}.dbo.Vouchers v WHERE v.Date BETWEEN @StartDate AND @EndDate) + +INSERT INTO {0}.dbo.Inventory (InventoryID, VoucherID, ProductID, ComplexProductID, Quantity, Rate, Tax, Discount, IsRateFinal) +SELECT InventoryID, VoucherID, ProductID, ComplexProductID, Quantity, Rate, Tax, Discount, IsRateFinal +FROM {1}.dbo.Inventory WHERE VoucherID IN ( +SELECT v.VoucherID FROM {1}.dbo.Vouchers v WHERE v.Date BETWEEN @StartDate AND @EndDate) +"; + using (SqlCommand cmd = new SqlCommand(string.Format(query, targetDB, sourceDB))) + { + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@EndDate", finishDate); + connection.ExecuteNonQuery(cmd); + } + } + private void Clean(string sourceDB, string targetDB, DateTime lastBillDateTime) + { + List list = new List(); + using (SqlCommand cmd = new SqlCommand(string.Format(@" +SELECT v.VoucherID, s.BillID, v.Date +FROM {0}.dbo.Vouchers v INNER JOIN {0}.dbo.SaleVoucher s ON v.VoucherID = s.VoucherID +WHERE v.Date >= @StartDate AND s.Printed = 1 +ORDER BY Date", targetDB))) + { + cmd.Parameters.AddWithValue("@StartDate", lastBillDateTime); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + { + list.Add(new SaleVoucherBO { VoucherID = dr.GetGuid(0), BillID = dr.GetString(1), Date = dr.GetDateTime(2) }); + } + } + } + string billID = list[0].BillID; + for (int i = 1; i < list.Count; i++) + { + billID = GetBillID(billID); + using (SqlCommand cmd = new SqlCommand(string.Format("UPDATE {0}.dbo.SaleVoucher SET BillID = @BillID WHERE VoucherID = @VoucherID", targetDB))) + { + cmd.Parameters.AddWithValue("@VoucherID", list[i].VoucherID); + cmd.Parameters.AddWithValue("@BillID", billID); + connection.ExecuteNonQuery(cmd); + } + } + } + #endregion + } +} diff --git a/Tanshu.Accounts.SqlDAO/MembershipDAO.cs b/Tanshu.Accounts.SqlDAO/MembershipDAO.cs new file mode 100644 index 0000000..735f40a --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/MembershipDAO.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using System.Data; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class MembershipDAO : BaseDAO, IMembershipDAO + { + public MembershipDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool ValidateUser(string name, string password) + { + string name2 = string.Empty; + if (name.Contains(":")) + { + name2 = name.Substring(name.IndexOf(":") + 1); + name = name.Substring(0, name.IndexOf(":")); + if (!IsUserInRole(name, "Security/CreateUser")) + return false; + SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Users WHERE LockedOut = 0 AND (Name = @Name AND Password = @Password) OR Name = @Name2"); + cmd.Parameters.AddWithValue("@Name", name); + cmd.Parameters.AddWithValue("@Name2", name2); + cmd.Parameters.AddWithValue("@Password", password); + return (int)connection.ExecuteScalar(cmd) == 2; + + } + else + { + SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM Users WHERE LockedOut = 0 AND Name = @Name AND Password = @Password"); + cmd.Parameters.AddWithValue("@Name", name); + cmd.Parameters.AddWithValue("@Password", password); + return (int)connection.ExecuteScalar(cmd) == 1; + } + } + + public bool IsUserInRole(string username, string roleName) + { + SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM UserRoles ur INNER JOIN Users u ON u.UserID = ur.UserID WHERE u.Name = @UserName AND ur.Role = @Role"); + cmd.Parameters.AddWithValue("@UserName", username); + cmd.Parameters.AddWithValue("@Role", roleName); + + return (int)connection.ExecuteScalar(cmd) >= 0 ? true : false; + } + + public bool IsUserInRole(Guid userID, string roleName) + { + SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM UserRoles ur WHERE ur.UserID = @UserID AND ur.Role = @Role"); + cmd.Parameters.AddWithValue("@UserID", userID); + cmd.Parameters.AddWithValue("@Role", roleName); + + return (int)connection.ExecuteScalar(cmd) >= 1 ? true : false; + } + + public string[] GetRolesForUser(string username) + { + List roles = new List(); + using (SqlCommand cmd = new SqlCommand("SELECT ur.Role FROM UserRoles ur INNER JOIN Users u ON ur.UserID = u.UserID WHERE u.Name = @Name")) + { + cmd.Parameters.AddWithValue("@Name", username); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + roles.Add(dr.GetString(0)); + } + } + + string[] outRoles = new string[roles.Count]; + for (int i = 0; i < roles.Count; i++) + { + outRoles[i] = roles[i]; + } + return outRoles; + } + + public UserBO GetUserFromName(string name) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Name = @Name"); + cmd.Parameters.AddWithValue("@Name", name); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + + public string[] GetAllRoles() + { + List roles = new List(); + using (IDataReader dr = connection.ExecuteReader("SELECT Role FROM Roles")) + { + while (dr.Read()) + { + roles.Add(dr.GetString(0)); + } + } + string[] outRoles = new string[roles.Count]; + for (int i = 0; i < roles.Count; i++) + { + outRoles[i] = roles[i]; + } + return outRoles; + } + + public void AddUsersToRoles(string[] usernames, string[] roleNames) + { + foreach (string user in usernames) + { + UserBO currentUser = GetUserFromName(user); + foreach (string role in roleNames) + { + using (SqlCommand cmd = new SqlCommand("INSERT INTO UserRoles (UserRoleID, UserID, Role) VALUES (NEWID(), @UserID, @Role)")) + { + cmd.Parameters.AddWithValue("@UserID", currentUser.UserID); + cmd.Parameters.AddWithValue("@Role", role); + connection.ExecuteNonQuery(cmd); + } + } + } + } + + public void RemoveUsersFromRoles(string[] usernames, string[] roleNames) + { + string query = "DELETE FROM UserRoles WHERE UserID IN ("; + + foreach (string user in usernames) + { + UserBO cUser = GetUserFromName(user); + query += string.Format("'{0}', ", cUser.UserID); + } + query = query.Substring(0, query.Length - 2) + ") AND Role IN ("; + foreach (string role in roleNames) + { + query += string.Format("'{0}', ", role); + } + query = query.Substring(0, query.Length - 2) + ")"; + connection.ExecuteNonQuery(query); + } + + public bool RoleExists(string roleID) + { + using (SqlCommand cmd = new SqlCommand("IF EXISTS(SELECT * FROM Roles WHERE Role = @RoleID) SELECT CAST(1 AS bit) ELSE SELECT CAST(0 AS bit)")) + { + cmd.Parameters.AddWithValue("@RoleID", roleID); + return (bool)connection.ExecuteScalar(cmd); + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/PaymentDAO.cs b/Tanshu.Accounts.SqlDAO/PaymentDAO.cs new file mode 100644 index 0000000..f80107d --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/PaymentDAO.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class PaymentDAO : BaseDAO, IPaymentDAO + { + public PaymentDAO(IConnectionDAO connection) + : base(connection) + { } + + public void Insert(PaymentBO payment) + { + using (SqlCommand cmd = new SqlCommand(@" +SET @PaymentID = NEWID(); +INSERT INTO Payments (PaymentID, Date, Type, CashierID, Amount, Narration) +VALUES (@PaymentID, @Date, @Type, @CashierID, @Amount, @Narration) +")) + { + cmd.Parameters.Add("@PaymentID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@PaymentID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Date", payment.Date); + cmd.Parameters.AddWithValue("@Type", payment.Type); + cmd.Parameters.AddWithValue("@CashierID", payment.CashierID); + cmd.Parameters.AddWithValue("@Amount", payment.Amount); + cmd.Parameters.AddWithValue("@Narration", payment.Narration); + connection.ExecuteNonQuery(cmd); + payment.PaymentID = (Guid)cmd.Parameters["@PaymentID"].Value; + } + } + public List GetPayments(Guid? userID, DateTime fromDate, DateTime toDate) + { + string query = "SELECT p.*, u.Name AS Cashier FROM Payments p INNER JOIN Users u ON p.CashierID = u.UserID WHERE Date BETWEEN @StartDate AND @FinishDate"; + if (userID.HasValue) + query += " AND CashierID = @CashierID"; + SqlCommand cmd = new SqlCommand(query); + cmd.Parameters.AddWithValue("@StartDate", fromDate); + cmd.Parameters.AddWithValue("@FinishDate", toDate); + if (userID.HasValue) + cmd.Parameters.AddWithValue("@CashierID", userID.Value); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + public void Delete(Guid paymentID) + { + using (SqlCommand cmd = new SqlCommand("DELETE FROM Payments WHERE PaymentID = @PaymentID")) + { + cmd.Parameters.AddWithValue("@PaymentID", paymentID); + connection.ExecuteNonQuery(cmd); + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/ProductDAO.cs b/Tanshu.Accounts.SqlDAO/ProductDAO.cs new file mode 100644 index 0000000..bde8e2e --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/ProductDAO.cs @@ -0,0 +1,220 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using System.Data; +using Tanshu.Accounts.DAOFactory; + + +namespace Tanshu.Accounts.SqlDAO +{ + public class ProductDAO : BaseDAO, IProductDAO + { + public ProductDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool Insert(ProductBO product) + { + product.ProductID = Guid.NewGuid(); + SqlCommand cmd = new SqlCommand(@" +SELECT @Code = ISNULL(MAX(Code), 0) + 1 FROM Products; +INSERT INTO Products (ProductID, Code, Name, Units, ProductTypeID, SaleLedgerID, SaleTaxID ,SalePrice , PurchaseLedgerID ,PurchaseTaxID , PurchasePrice, Discontinued, MinimumLevel, MaximumLevel, SortOrder) VALUES (@ProductID, @Code, @Name, @Units, @ProductTypeID, @SaleLedgerID, @SaleTaxID, @SalePrice ,@PurchaseLedgerID ,@PurchaseTaxID , @PurchasePrice, @Discontinued, @MinimumLevel, @MaximumLevel, @SortOrder); +SELECT @timestamp = timestamp FROM Products WHERE ProductID = @ProductID;"); + { + cmd.Parameters.AddWithValue("@ProductID", product.ProductID); + cmd.Parameters.Add("@Code", System.Data.SqlDbType.Int); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Code", product.Code); + cmd.Parameters.AddWithValue("@Name", product.Name); + cmd.Parameters.AddWithValue("@Units", product.Units); + cmd.Parameters.AddWithValue("@ProductTypeID", product.ProductTypeID); + cmd.Parameters.AddWithValue("@SaleLedgerID", product.SaleLedgerID); + cmd.Parameters.AddWithValue("@SaleTaxID", product.SaleTaxID); + cmd.Parameters.AddWithValue("@SalePrice", product.SalePrice); + cmd.Parameters.AddWithValue("@PurchaseLedgerID", product.PurchaseLedgerID); + cmd.Parameters.AddWithValue("@PurchaseTaxID", product.PurchaseTaxID); + cmd.Parameters.AddWithValue("@PurchasePrice", product.PurchasePrice); + cmd.Parameters.AddWithValue("@Discontinued", product.Discontinued); + cmd.Parameters.AddWithValue("@MinimumLevel", product.MinimumLevel); + cmd.Parameters.AddWithValue("@MaximumLevel", product.MaximumLevel); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters.AddWithValue("@SortOrder", product.SortOrder); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + product.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + product.Code = (int)cmd.Parameters["@Code"].Value; + return true; + } + } + public ProductBO GetProduct(Guid productID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Products WHERE ProductID = @ProductID"); + cmd.Parameters.AddWithValue("@ProductID", productID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public bool Delete(Guid productID) + { + SqlCommand cmd = new SqlCommand("DELETE FROM Products WHERE ProductID = @ProductID"); + cmd.Parameters.AddWithValue("@ProductID", productID); + connection.ExecuteNonQuery(cmd); + return true; + } + public bool Update(ProductBO product) + { + SqlCommand cmd = new SqlCommand(@"UPDATE Products SET Code = @Code ,Name = @Name ,Units = @Units ,ProductTypeID = @ProductTypeID ,SaleLedgerID = @SaleLedgerID ,SaleTaxID = @SaleTaxID ,SalePrice = @SalePrice ,PurchaseLedgerID = @PurchaseLedgerID ,PurchaseTaxID = @PurchaseTaxID ,PurchasePrice = @PurchasePrice ,Discontinued = @Discontinued ,MinimumLevel = @MinimumLevel ,MaximumLevel = @MaximumLevel, SortOrder=@SortOrder WHERE ProductID = @ProductID SELECT @timestamp = timestamp FROM Products WHERE ProductID = @ProductID;"); + cmd.Parameters.AddWithValue("@ProductID", product.ProductID); + cmd.Parameters.AddWithValue("@Code", product.Code); + cmd.Parameters.AddWithValue("@Name", product.Name); + cmd.Parameters.AddWithValue("@Units", product.Units); + cmd.Parameters.AddWithValue("@ProductTypeID", product.ProductTypeID); + cmd.Parameters.AddWithValue("@SaleLedgerID", product.SaleLedgerID); + cmd.Parameters.AddWithValue("@SaleTaxID", product.SaleTaxID); + cmd.Parameters.AddWithValue("@SalePrice", product.SalePrice); + cmd.Parameters.AddWithValue("@PurchaseLedgerID", product.PurchaseLedgerID); + cmd.Parameters.AddWithValue("@PurchaseTaxID", product.PurchaseTaxID); + cmd.Parameters.AddWithValue("@PurchasePrice", product.PurchasePrice); + cmd.Parameters.AddWithValue("@Discontinued", product.Discontinued); + cmd.Parameters.AddWithValue("@MinimumLevel", product.MinimumLevel); + cmd.Parameters.AddWithValue("@MaximumLevel", product.MaximumLevel); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters.AddWithValue("@SortOrder", product.SortOrder); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + product.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + public ProductBO GetProduct(string nameAndUnits) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Products WHERE Name + ' (' + Units + ')' = @Name"); + cmd.Parameters.AddWithValue("@Name", nameAndUnits); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public decimal GetProductStock(DateTime date, Guid productID, Guid? voucherID) + { + // Add this to get product rate as well + // , CASE WHEN SUM(CASE WHEN t.Type IN ('P', 'Z') THEN i.Quantity ELSE 0 END) = 0 THEN (SELECT PurchasePrice FROM Products p WHERE p.ProductID = i.ProductID) ELSE SUM(CASE WHEN t.Type IN ('P', 'Z') THEN i.Quantity * i.Rate ELSE 0 END) / SUM(CASE WHEN t.Type IN ('P', 'Z') THEN i.Quantity ELSE 0 END) END AS Rate + string query; + if (voucherID.HasValue) + query = @" +SELECT SUM(i.Quantity * j.Debit) AS Quantity +FROM Vouchers t INNER JOIN Inventory i ON t.VoucherID = i.VoucherID INNER JOIN Journal j ON t.VoucherID = j.VoucherID INNER JOIN Products p ON p.ProductID = i.ProductID +WHERE j.CostCenterID = '955F847B-EFDF-4AFA-897C-F0BAF15284A3' AND i.ProductID = @ProductID AND t.Date < @Date +AND t.VoucherID <> @VoucherID +GROUP BY i.ProductID"; + else + query = @" +SELECT SUM(i.Quantity * j.Debit) AS Quantity +FROM Vouchers t INNER JOIN Inventory i ON t.VoucherID = i.VoucherID INNER JOIN Journal j ON t.VoucherID = j.VoucherID INNER JOIN Products p ON p.ProductID = i.ProductID +WHERE j.CostCenterID = '955F847B-EFDF-4AFA-897C-F0BAF15284A3' AND i.ProductID = @ProductID AND t.Date < @Date +GROUP BY i.ProductID"; + SqlCommand cmd = new SqlCommand(query); + cmd.Parameters.AddWithValue("@Date", date); + cmd.Parameters.AddWithValue("@ProductID", productID); + if (voucherID.HasValue) + cmd.Parameters.AddWithValue("@VoucherID", voucherID.Value); + return (decimal)connection.ExecuteScalar(cmd); + } + + public List GetProducts() + { + //SELECT p.ProductID, p.Picture, p.Code, p.Name, p.Units, p.ProductTypeID, p.SaleLedgerID, p.SaleTaxID, p.SalePrice, p.PurchaseLedgerID, p.PurchaseTaxID, p.PurchasePrice, p.Discontinued, p.MinimumLevel, p.MaximumLevel, p.timestamp, p.SortOrder, pt.Name AS Type FROM Products p INNER JOIN ProductTypes pt ON p.ProductTypeID = pt.ProductTypeID ORDER BY p.Name + SqlCommand cmd = new SqlCommand("SELECT p.ProductID, p.Picture, p.Code, p.Name, p.Units, p.ProductTypeID, p.SaleLedgerID, p.SaleTaxID, p.SalePrice, p.PurchaseLedgerID, p.PurchaseTaxID, p.PurchasePrice, p.Discontinued, p.MinimumLevel, p.MaximumLevel, p.SortOrder, pt.Name AS Type FROM Products p INNER JOIN ProductTypes pt ON p.ProductTypeID = pt.ProductTypeID ORDER BY p.Name"); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + + public List GetFilteredProducts(Dictionary filter) + { + List list = new List(); + string query = GetProductQuery(filter); + using (IDataReader dr = connection.ExecuteReader(query)) + { + while (dr.Read()) + { + list.Add(new ProductDisplaySmallBO + { + Category = dr.GetString(4), + Code = dr.GetInt32(1), + Name = dr.GetString(2), + Price = dr.GetDecimal(3), + ProductID = dr.GetGuid(0) + + }); + } + dr.Close(); + } + return list; + } + private string GetProductQuery(Dictionary filter) + { + string query = @" +SELECT p.ProductID, p.Code, p.Name + ' (' + p.Units + ') ' + ShortName AS Name, +p.SalePrice * (1 + t.Rate) AS Price, +pt.Name AS Category +FROM Products p INNER JOIN Tax t ON p.SaleTaxID = t.TaxID +INNER JOIN ProductTypes pt ON p.ProductTypeID = pt.ProductTypeID +WHERE pt.IsForSale = 1 AND p.SalePrice > 0 AND p.Discontinued = 0 +"; + string[] n = filter["Name"].Split(" ".ToCharArray()); + + foreach (string n1 in n) + if (n1 != null && n1 != string.Empty) + query += string.Format("AND p.Name + ' (' + p.Units + ') ' + ShortName LIKE '%{0}%' \r\n", n1); + + n = filter["Type"].ToLower().Split(" ".ToCharArray()); + foreach (string n1 in n) + if (n1 != null && n1 != string.Empty) + query += string.Format("AND pt.Name LIKE '%{0}%' \r\n", n1); + + query += "ORDER BY p.SortOrder DESC;"; + return query; + } + public void UpdateShortName() + { + List list = BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader("SELECT * FROM Products")); + foreach (var item in list) + { + using (SqlCommand cmd = new SqlCommand("UPDATE Products SET ShortName = @ShortName WHERE ProductID = @ProductID AND ShortName <> @ShortName")) + { + cmd.Parameters.AddWithValue("@ShortName", GetShortName(item.Name)); + cmd.Parameters.AddWithValue("@ProductID", item.ProductID); + connection.ExecuteScalar(cmd); + } + } + } + private string GetShortName(string name) + { + string[] t1 = name.Split(" ".ToCharArray()); + if (t1.Length == 0) + return ""; + name = ""; + foreach (string t in t1) + { + if ((!t.StartsWith("(")) && (t != "")) + name += t.Substring(0, 1); + } + return name; + } + + public List GetProductTypes() + { + SqlCommand cmd = new SqlCommand("SELECT * FROM ProductTypes ORDER BY Name"); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + + } + + public List GetProducts(string name, int skip, int count) + { + string query = @" +WITH ProductsRN AS +(SELECT *, ROW_NUMBER() OVER(ORDER BY Name) AS RowNum FROM Products WHERE Name LIKE '%{0}%') +SELECT TOP {1} p.*, pt.Name AS Type FROM ProductsRN p INNER JOIN ProductTypes pt ON p.ProductTypeID = pt.ProductTypeID WHERE RowNum > {2} +"; + query = string.Format(query, name, count, skip); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(query)); + + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/Properties/AssemblyInfo.cs b/Tanshu.Accounts.SqlDAO/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9914087 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tanshu.Accounts.LiteDAO")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tanshu.Accounts.LiteDAO")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("963961fa-6172-4cfb-8a96-723501c064a5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tanshu.Accounts.SqlDAO/SaleVoucherDAO.cs b/Tanshu.Accounts.SqlDAO/SaleVoucherDAO.cs new file mode 100644 index 0000000..b3683f0 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/SaleVoucherDAO.cs @@ -0,0 +1,112 @@ +using System; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class SaleVoucherDAO : BaseDAO, ISaleVoucherDAO + { + public SaleVoucherDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool Insert(SaleVoucherBO saleVoucher) + { + using (SqlCommand cmd = new SqlCommand("SaleVoucher_Insert")) + { + cmd.CommandType = System.Data.CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@VoucherID", saleVoucher.VoucherID); + cmd.Parameters.Add("@BillID", System.Data.SqlDbType.NVarChar, 10); + cmd.Parameters["@BillID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@TableID", saleVoucher.TableID); + cmd.Parameters.AddWithValue("@WaiterID", saleVoucher.WaiterID); + cmd.Parameters.AddWithValue("@CustomerID", saleVoucher.CustomerID); + cmd.Parameters.AddWithValue("@Paid", saleVoucher.Paid); + cmd.Parameters.AddWithValue("@Void", saleVoucher.Void); + if (saleVoucher.VoidReason == null) + saleVoucher.VoidReason = string.Empty; + cmd.Parameters.AddWithValue("@VoidReason", saleVoucher.VoidReason); + cmd.Parameters.AddWithValue("@Printed", saleVoucher.Printed); + if (saleVoucher.Alarm.HasValue) + cmd.Parameters.AddWithValue("@Alarm", saleVoucher.Alarm); + else + cmd.Parameters.AddWithValue("@Alarm", DBNull.Value); + cmd.Parameters.Add("@KotID", System.Data.SqlDbType.NVarChar, 10); + cmd.Parameters["@KotID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@CreditCard", saleVoucher.CreditCard); + cmd.Parameters.AddWithValue("@IsImportant", saleVoucher.IsImportant); + connection.ExecuteNonQuery(cmd); + saleVoucher.SaleTimestamp = (byte[])cmd.Parameters["@timestamp"].Value; + saleVoucher.BillID = (string)cmd.Parameters["@BillID"].Value; + saleVoucher.KotID = (string)cmd.Parameters["@KotID"].Value; + return true; + } + } + public bool Update(SaleVoucherBO saleVoucher) + { + using (SqlCommand cmd = new SqlCommand("SaleVoucher_Update")) + { + cmd.CommandType = System.Data.CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@VoucherID", saleVoucher.VoucherID); + + cmd.Parameters.Add("@BillID", System.Data.SqlDbType.NVarChar, 10); + cmd.Parameters["@BillID"].Direction = System.Data.ParameterDirection.Output; + + cmd.Parameters.AddWithValue("@TableID", saleVoucher.TableID); + cmd.Parameters.AddWithValue("@WaiterID", saleVoucher.WaiterID); + cmd.Parameters.AddWithValue("@CustomerID", saleVoucher.CustomerID); + cmd.Parameters.AddWithValue("@Paid", saleVoucher.Paid); + cmd.Parameters.AddWithValue("@Void", saleVoucher.Void); + if (saleVoucher.VoidReason == null) + saleVoucher.VoidReason = string.Empty; + cmd.Parameters.AddWithValue("@VoidReason", saleVoucher.VoidReason); + cmd.Parameters.AddWithValue("@Printed", saleVoucher.Printed); + if (saleVoucher.Alarm.HasValue) + cmd.Parameters.AddWithValue("@Alarm", saleVoucher.Alarm); + else + cmd.Parameters.AddWithValue("@Alarm", DBNull.Value); + cmd.Parameters.Add("@KotID", System.Data.SqlDbType.NVarChar, 10); + cmd.Parameters["@KotID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@CreditCard", saleVoucher.CreditCard); + cmd.Parameters.AddWithValue("@IsImportant", saleVoucher.IsImportant); + connection.ExecuteNonQuery(cmd); + saleVoucher.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + saleVoucher.SaleTimestamp = (byte[])cmd.Parameters["@timestamp"].Value; + saleVoucher.BillID = (string)cmd.Parameters["@BillID"].Value; + saleVoucher.KotID = (string)cmd.Parameters["@KotID"].Value; + return true; + } + } + public void SetAlarm(Guid voucherID, DateTime? alarmTime) + { + using (SqlCommand cmd = new SqlCommand(@"UPDATE SaleVoucher SET Alarm = @Alarm WHERE VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@Alarm", alarmTime); + connection.ExecuteNonQuery(cmd); + } + } + public void VoidBill(Guid voucherID, string reason) + { + using (SqlCommand cmd = new SqlCommand(@"UPDATE SaleVoucher SET Void = @Void, VoidReason = @VoidReason WHERE VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@Void", true); + cmd.Parameters.AddWithValue("@VoidReason", reason); + connection.ExecuteNonQuery(cmd); + } + } + public SaleVoucherBO GetVoucherSale(Guid voucherID) + { + SqlCommand cmd = new SqlCommand("SELECT b.*, ts.BillID, ts.TableID, ts.WaiterID ,ts.CustomerID ,ts.Paid ,ts.Void ,ts.VoidReason ,ts.Printed ,ts.Alarm ,ts.KotID ,ts.timestamp AS SaleTimestamp ,ts.CreditCard FROM SaleVoucher ts INNER JOIN Vouchers b ON ts.VoucherID = b.VoucherID WHERE ts.VoucherID = @VoucherID"); + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/SaleVoucherMixDAO.cs b/Tanshu.Accounts.SqlDAO/SaleVoucherMixDAO.cs new file mode 100644 index 0000000..0e79e00 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/SaleVoucherMixDAO.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Tanshu.Accounts.Contracts; +using System.Data.SqlClient; +using System.Data; +//using System.Windows.Forms; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + + +namespace Tanshu.Accounts.SqlDAO +{ + public class SaleVoucherMixDAO : BaseDAO, ISaleVoucherMixDAO + { + public SaleVoucherMixDAO(IConnectionDAO connection) + :base (connection) + {} + public SalesBillItemBO GetDefaultSaleBillItem(Guid productID) + { + bool isComplex; + using (SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM Products WHERE ProductID = @ProductID")) + { + cmd.Parameters.AddWithValue("@ProductID", productID); + if ((int)connection.ExecuteScalar(cmd) != 0) + isComplex = false; + else + isComplex = true; + } + if (!isComplex) + { + string query = @" +SELECT p.ProductID, p.Name + ' (' + p.Units +')', +p.SalePrice, p.SaleTaxID, t.Rate AS TaxRate, +p.SaleLedgerID, l.CostCenterID +FROM Products p INNER JOIN Tax t ON p.SaleTaxID = t.TaxID INNER JOIN Ledgers l ON p.SaleLedgerID = l.LedgerID +WHERE p.ProductID = @ProductID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@ProductID", productID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + dr.Read(); + SalesBillItemBO mySale = new SalesBillItemBO + { + productID = dr.GetGuid(0), + Name = dr.GetString(1), + Price = dr.GetDecimal(2), + Tax = dr.GetDecimal(4), + Discount = 0, + location = "", + Printed = 0, + Quantity = 1 + }; + return mySale; + } + } + } + else + { + string query = @" +SELECT c.ComplexProductID, c.Name + ' (' + c.Units +')' AS Name, +c.SalePrice, c.SaleTaxID, t.Rate AS TaxRate +FROM ComplexProducts c INNER JOIN Tax t ON c.SaleTaxID = t.TaxID +WHERE c.ComplexProductID = @ProductID +GROUP BY c.ComplexProductID, c.Name + ' (' + c.Units +')' , +c.SalePrice, c.SaleTaxID, t.Rate +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@ProductID", productID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + dr.Read(); + SalesBillItemBO mySale = new SalesBillItemBO + { + productID = dr.GetGuid(0), + Name = dr.GetString(1), + Price = dr.GetDecimal(2), + Tax = dr.GetDecimal(4), + Discount = 0, + location = "complex", + Printed = 0, + Quantity = 1 + }; + return mySale; + } + } + } + + } + public decimal GetProductDiscountLimit(Guid productID) + { + string query = @"SELECT t.DiscountLimit FROM ProductTypes t INNER JOIN Products p +ON t.ProductTypeID = p.ProductTypeID WHERE p.ProductID = @ProductID"; + + decimal discountLimit = 0; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@ProductID", productID); + discountLimit = (decimal)connection.ExecuteScalar(cmd); + } + + return discountLimit; + } + public bool IsBillPrinted(Guid voucherID) + { + string query = @"SELECT Printed FROM SaleVoucher WHERE VoucherID = @VoucherID"; + bool printed = true; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + printed = (bool)connection.ExecuteScalar(cmd); + } + return printed; + } + + + + public List GetPendingBills(PendingType list) + { + string query = @" + SELECT t.VoucherID, s.Alarm AS Alarm, s.TableID AS TableID, + (SELECT SUM(Amount) FROM Inventory WHERE VoucherID = t.VoucherID) AS Amount, + s.BillID, t.CreationDate, u.Name, CAST(0 AS bit), s.KotID, t.LastEditDate, s.Printed + FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID AND s.Paid = 0 AND s.Void = 0 + INNER JOIN Users u ON t.UserID = u.UserID + "; + if (list == PendingType.Alarms) + query += "WHERE s.Alarm IS NOT NULL "; + else + query += "WHERE s.Alarm IS NULL "; + if (list == PendingType.Important) + query += "AND s.IsImportant = 1 "; + else + query += "AND s.IsImportant = 0 "; + if (list == PendingType.Today) + query += string.Format("AND t.LastEditDate >= '{0:dd-MMM-yyyy} 00:00:00' ", DateTime.Now); + else if (list == PendingType.Week) + query += string.Format("AND t.LastEditDate >= '{0:dd-MMM-yyyy} 00:00:00' ", DateTime.Now.AddDays(-7)); + query += "ORDER BY t.CreationDate "; + using (IDataReader dr = connection.ExecuteReader(query)) + { + List outList = new List(); + while (dr.Read()) + { + PendingBillsBO local = new PendingBillsBO(); + local.voucherID = dr.GetGuid(0); + local.Alarm = !dr.IsDBNull(1); + if (local.Alarm) + local.AlarmTime = dr.GetDateTime(1); + local.TableID = dr.GetString(2); + if (!dr.IsDBNull(3)) + local.Amount = dr.GetDecimal(3); + local.BillNo = dr.GetString(4); + local.BookingTime = dr.GetDateTime(5); + local.Cashier = dr.GetString(6); + local.Important = dr.GetBoolean(7); + local.Kot = dr.GetString(8); + local.LastEdited = dr.GetDateTime(9); + local.Printed = dr.GetBoolean(10); + outList.Add(local); + } + return outList; + } + + } + public Nullable GetPendingVoucherID(string tableID) + { + + string query = "SELECT VoucherID FROM SaleVoucher where TableID = @TableID and Paid = 0 and Void = 0"; + Guid? voucherID; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@TableID", tableID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + if (dr.Read()) + { + voucherID = dr.GetGuid(0); + dr.Close(); + dr.Dispose(); + return voucherID; + } + return null; + } + } + } + public List SaleInventory(Dictionary.ValueCollection list, Guid? voucherID) + { + Dictionary localList = new Dictionary(); + foreach (SalesBillItemBO item in list) + { + InventoryBO temp = new InventoryBO(); + #region Complex + //if (item.location == "complex") + //{ + // decimal balance; + // string query = "SELECT SUM(Quantity * p.SalePrice) FROM ComplexProducts c INNER JOIN Products p ON c.ProductID = p.ProductID WHERE ComplexProductID = @ComplexProductID"; + // using (SqlCommand cmd = new SqlCommand(query)) + // { + // cmd.Parameters.AddWithValue("@ComplexProductID", item.productID); + // balance = (decimal)connection.ExecuteScalar(cmd); + // balance = (item.Price - balance) / balance; + // } + // query = "SELECT c.ProductID, c.Quantity, p.SalePrice FROM ComplexProducts c INNER JOIN Products p ON c.ProductID = p.ProductID WHERE ComplexProductID = @ComplexProductID"; + // using (SqlCommand cmd = new SqlCommand(query)) + // { + // cmd.Parameters.AddWithValue("@ComplexProductID", item.productID); + // SqlDataReader dr = connection.ExecuteReader(cmd); + // while (dr.Read()) + // { + // InventoryBO temp = new InventoryBO(); + // if (voucherID.HasValue) + // temp.VoucherID = voucherID.Value; + // temp.InventoryID = Guid.NewGuid(); + // temp.Discount = item.Discount; + // temp.IsRateFinal = true; + // temp.ComplexProductID = item.productID; + // temp.ProductID = dr.GetGuid(0); + // temp.Quantity = item.Quantity * dr.GetDecimal(1); + // temp.Rate = dr.GetDecimal(2) * (1 + balance); + // temp.Tax = item.Tax; + // localList.Add(temp); + // } + // dr.Close(); + // dr.Dispose(); + // } + + //} + //else + //{ + // Add the lower loop here + //} + #endregion + if (localList.ContainsKey(item.productID)) + { + temp = localList[item.productID]; + temp.Quantity += item.Quantity; + } + else + { + if (voucherID.HasValue) + temp.VoucherID = voucherID.Value; + temp.InventoryID = Guid.NewGuid(); + temp.Discount = item.Discount; + temp.IsRateFinal = true; + temp.ComplexProductID = null; + temp.ProductID = item.productID; + temp.Quantity = item.Quantity; + temp.Rate = item.Price; + temp.Tax = item.Tax; + localList.Add(item.productID, temp); + } + } + List outList = new List(); + foreach (var item in localList) + outList.Add(item.Value); + return outList; + } + public void GetComplexBillInformation(Guid voucherID, Guid complexProductID, ref decimal rate, ref decimal quantity, ref string name) + { + + string query = @" +SELECT TOP 1 i.Quantity / c.Quantity FROM Inventory i INNER JOIN ComplexProducts c ON i.ComplexProductID = c.ComplexProductID AND i.ProductID = c.ProductID +WHERE i.VoucherID = @VoucherID +AND c.ComplexProductID = @ComplexProductID +"; + using (SqlCommand cmd = new SqlCommand(query)) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@ComplexProductID", complexProductID); + quantity = (decimal)connection.ExecuteScalar(cmd); + } + using (SqlCommand cmd = new SqlCommand("SELECT TOP 1 SalePrice, Name FROM ComplexProducts WHERE ComplexProductID = @ComplexProductID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + cmd.Parameters.AddWithValue("@ComplexProductID", complexProductID); + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + dr.Read(); + rate = dr.GetDecimal(0); + name = dr.GetString(1); + } + } + + } + + private class BillPaidClass + { + public Guid VoucherID { get; set; } + public string KotID { get; set; } + public bool Printed { get; set; } + } + public void DeclareBillsPaid(Guid userID, List billList, bool creditCard) + { + List removeItems = new List(); + string query = "SELECT VoucherID, KotID, Printed FROM SaleVoucher WHERE VoucherID IN ("; + foreach (Guid voucherID in billList) + { + query += string.Format("'{0}', ", voucherID); + } + query = query.Substring(0, query.Length - 2) + ")"; + + List pbc = new List(); + using (SqlCommand cmd = new SqlCommand(query)) + { + using (IDataReader dr = connection.ExecuteReader(cmd)) + { + while (dr.Read()) + { + pbc.Add(new BillPaidClass + { + VoucherID = dr.GetGuid(0), + KotID = dr.GetString(1), + Printed = dr.GetBoolean(2) + }); + } + } + } + foreach (BillPaidClass item in pbc) + { + //if ((item.Printed != false) || (MessageBox.Show("Pay unprinted bill No.: " + item.KotID + " ?", "Pay unprinted bill", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)) + if (item.Printed != false) + { + using (SqlCommand cmd = new SqlCommand("UPDATE SaleVoucher SET Paid = 1, CreditCard = @CreditCard WHERE VoucherID = @VoucherID; UPDATE Vouchers SET UserID = @UserID, LastEditDate = GETDATE() WHERE VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", item.VoucherID); + cmd.Parameters.AddWithValue("@UserID", userID); + cmd.Parameters.AddWithValue("@CreditCard", creditCard); + connection.ExecuteNonQuery(cmd); + } + removeItems.Add(item.VoucherID); + } + } + + foreach (Guid item in removeItems) + billList.Remove(item); + } + + public void ToggleImportant(Guid voucherID) + { + using (SqlCommand cmd = new SqlCommand("UPDATE SaleVoucher SET IsImportant= CASE WHEN IsImportant = 0 THEN 1 ELSE 0 END FROM SaleVoucher WHERE VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + connection.ExecuteNonQuery(cmd); + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/SalesAnalysisDAO.cs b/Tanshu.Accounts.SqlDAO/SalesAnalysisDAO.cs new file mode 100644 index 0000000..be14259 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/SalesAnalysisDAO.cs @@ -0,0 +1,239 @@ +using System.Collections.Generic; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using System; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class SalesAnalysisDAO : BaseDAO, ISalesAnalysisDAO + { + public SalesAnalysisDAO(IConnectionDAO connection) + : base(connection) + { } + + public List GetSalesTaxReturn(DateTime startDate, DateTime finishDate, ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax) + { + List list = new List(); + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT NEWID(), +CAST(i.Tax AS nvarchar(10)) AS Section, +SUM(i.Quantity * i.Rate * (1 - i.Discount) * (i.Tax)) AS Quantity, +SUM(i.Quantity * i.Rate * (1 - i.Discount)) AS Net, +SUM(i.Amount) AS Gross +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 'S' AND s.Paid = 1 AND s.Void = 0 +AND t.Date BETWEEN @StartDate AND @FinishDate +GROUP BY i.Tax +ORDER BY Section DESC;"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + list = BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + + + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Quantity * Rate), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.Date BETWEEN @StartDate AND @FinishDate +AND i.Amount = 0"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + freeSale = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' +AND t.Date BETWEEN @StartDate AND @FinishDate +AND s.Void = 1"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + voids = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 0 AND s.Void = 0 +AND t.Date BETWEEN @StartDate AND @FinishDate"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + pending = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Quantity * Rate * (1 - Discount )), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.Date BETWEEN @StartDate AND @FinishDate"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + net = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.Date BETWEEN @StartDate AND @FinishDate"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + tax = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + return list; + } + public void GetAdditionalInfo(ref decimal freeSale, ref decimal voids, ref decimal pending, ref decimal net, ref decimal tax, DateTime startDate, DateTime finishDate) + { + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Quantity * Rate), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate +AND i.Amount = 0"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + freeSale = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate +AND s.Void = 1"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + voids = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 0 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate +ORDER BY Amount DESC;"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + pending = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Quantity * Rate * (1 - Discount )), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + net = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT ISNULL(SUM(Amount), 0) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + tax = Math.Round((decimal)connection.ExecuteScalar(cmd)); + } + } + public List GetSaleDetail(DateTime startDate, DateTime finishDate, Guid costCenterID) + { + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT p.Name AS Product, pt.Name AS Section, SUM(i.Quantity) AS Quantity, SUM(Amount) AS Amount +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Products p ON i.ProductID = p.ProductID +INNER JOIN ProductTypes pt ON p.ProductTypeID = pt.ProductTypeID +INNER JOIN Ledgers l ON p.SaleLedgerID = l.LedgerID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND l.CostCenterID = @CostCenterID +GROUP BY p.Name, pt.Name +ORDER BY Amount DESC;"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + cmd.Parameters.AddWithValue("@CostCenterID", costCenterID); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + + } + } + public List GetSale(DateTime startDate, DateTime finishDate) + { + using (SqlCommand cmd = new SqlCommand()) + { + string query = @" +SELECT c.CostCenterID AS TypeID, c.Name AS Section, SUM(i.Quantity) AS Quantity, SUM(Amount) AS Gross, SUM(i.Quantity * i.Rate * (1 - Discount)) AS Net +FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID +INNER JOIN Inventory i ON t.VoucherID = i.VoucherID +INNER JOIN Products p ON i.ProductID = p.ProductID +INNER JOIN Ledgers l ON p.SaleLedgerID = l.LedgerID +INNER JOIN CostCenters c ON l.CostCenterID = c.CostCenterID +WHERE t.Type = 's' AND s.Paid = 1 AND s.Void = 0 +AND t.LastEditDate BETWEEN @StartDate AND @FinishDate +GROUP BY c.CostCenterID, c.Name +ORDER BY Net DESC;"; + cmd.CommandText = query; + cmd.Parameters.AddWithValue("@StartDate", startDate); + cmd.Parameters.AddWithValue("@FinishDate", finishDate); + List list = BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + decimal gross = 0, net = 0; + foreach (SalesAnalysisBO i in list) + { + gross += i.Gross; + net += i.Net; + } + SalesAnalysisBO item = new SalesAnalysisBO + { + Gross = gross, + Net = net, + }; + item.Section = string.Format("Total: {0:#,##0.00;(#,##0.00);0}", item.Gross - item.Net); + list.Add(item); + return list; + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/SqlConnectionDAO.cs b/Tanshu.Accounts.SqlDAO/SqlConnectionDAO.cs new file mode 100644 index 0000000..9e528c5 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/SqlConnectionDAO.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using System.Diagnostics; + +namespace Tanshu.Accounts.SqlDAO +{ + public class SqlConnectionDAO : Tanshu.Data.DAO.SqlConnectionDAO + { + public SqlConnectionDAO() + : base(Database.ConnectionString) + { + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.SqlDAO.csproj b/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.SqlDAO.csproj new file mode 100644 index 0000000..a42afa7 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.SqlDAO.csproj @@ -0,0 +1,95 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B755D152-37C3-47D6-A721-3AD17A8EF316} + Library + Properties + Tanshu.Accounts.SqlDAO + Tanshu.Accounts.SqlDAO + v3.5 + 512 + + + true + full + false + ..\Bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Bin\ + TRACE + prompt + 4 + + + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + False + ..\Include\Tanshu.Common.dll + + + False + ..\Include\Tanshu.Data.dll + + + False + ..\Include\Tanshu.Logging.dll + + + + + + + + + + + + + + + + + + + + + + + + + + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17} + Tanshu.Accounts.Contracts + + + + + \ No newline at end of file diff --git a/Tanshu.Accounts.SqlDAO/UserDAO.cs b/Tanshu.Accounts.SqlDAO/UserDAO.cs new file mode 100644 index 0000000..bbd1ead --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/UserDAO.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class UserDAO : BaseDAO, IUserDAO + { + public UserDAO(IConnectionDAO connection) + : base(connection) + { } + + public UserBO GetUser(Guid userID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE UserID = @UserID"); + cmd.Parameters.AddWithValue("@UserID", userID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public List GetUsers() + { + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader("SELECT * FROM Users")); + } + public List GetFilteredUsers(Dictionary filter) + { + string name = string.Format("%{0}%", filter["Name"]); + using (SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Name LIKE @Name ORDER BY Name")) + { + cmd.Parameters.AddWithValue("@Name", name); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + } + public bool UserExists(string userName) + { + using (SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM Users WHERE Name = @Name")) + { + cmd.Parameters.AddWithValue("@Name", userName); + return (int)connection.ExecuteScalar(cmd) == 1; + } + } + public bool Insert(UserBO user) + { + using (SqlCommand cmd = new SqlCommand(@" +SELECT @UserID = NEWID() +INSERT INTO Users (UserID, Name, Password, LockedOut) +VALUES (@UserID, @Name, @Password, @LockedOut) +SELECT @timestamp = timestamp FROM Users WHERE UserID = @UserID +")) + { + cmd.Parameters.Add("@UserID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@UserID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Name", user.Name); + cmd.Parameters.AddWithValue("@Password", user.Password); + cmd.Parameters.AddWithValue("@LockedOut", user.LockedOut); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + user.UserID = (Guid)cmd.Parameters["@UserID"].Value; + user.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + //public bool CheckPassword(string userName, string password) + //{ + // using (SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM Users WHERE Name = @Name AND Password = @Password")) + // { + // cmd.Parameters.AddWithValue("@Name", userName); + // cmd.Parameters.AddWithValue("@Password", password); + // return (int)connection.ExecuteScalar(cmd) == 1; + // } + //} + public bool ChangePassword(UserBO userData, string newPassword) + { + using (SqlCommand cmd = new SqlCommand("UPDATE Users SET Password = @NewPassword WHERE Name = @Name AND Password = @Password; SELECT @@rowcount")) + { + cmd.Parameters.AddWithValue("@Name", userData.Name); + cmd.Parameters.AddWithValue("@Password", userData.Password); + cmd.Parameters.AddWithValue("@NewPassword", newPassword); + return (int)connection.ExecuteScalar(cmd) == 1; + } + } + + public bool Update(UserBO user) + { + using (SqlCommand cmd = new SqlCommand(@" +UPDATE Users SET + Name = @Name, + Password = @Password, + LockedOut = @LockedOut +WHERE UserID = @UserID; +SELECT @timestamp = timestamp FROM Users WHERE UserID = @UserID +")) + { + cmd.Parameters.AddWithValue("@UserID", user.UserID); + cmd.Parameters.AddWithValue("@Name", user.Name); + cmd.Parameters.AddWithValue("@Password", user.Password); + cmd.Parameters.AddWithValue("@LockedOut", user.LockedOut); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + user.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + + public bool Delete(Guid userID) + { + using (SqlCommand cmd = new SqlCommand("DELETE FROM Users WHERE UserID = @UserID")) + { + cmd.Parameters.AddWithValue("@UserID", userID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + } +} + +//private static log4net.ILog log +//= log4net.LogManager.GetLogger( +// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); \ No newline at end of file diff --git a/Tanshu.Accounts.SqlDAO/VoucherDAO.cs b/Tanshu.Accounts.SqlDAO/VoucherDAO.cs new file mode 100644 index 0000000..fd8ce3d --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/VoucherDAO.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class VoucherDAO : BaseDAO, IVoucherDAO + { + public VoucherDAO(IConnectionDAO connection) + : base(connection) + { } + + public bool Insert(VoucherBO voucher) + { + using (SqlCommand cmd = new SqlCommand(@" + SELECT @Code = ISNULL(MAX(Code), 0) + 1 FROM Vouchers WHERE Type = @Type + + SELECT @VoucherID = NEWID(), + @CreationDate = GETDATE(), + @LastEditDate = GETDATE(), + @Date = COALESCE(@Date, GETDATE()) + + INSERT INTO [Vouchers] ([VoucherID], [Code], [Ref], [Date], [Narration], [UserID], [CreationDate], [LastEditDate], [Type]) + VALUES (@VoucherID, @Code, @Ref, @Date, @Narration, @UserID, @CreationDate, @LastEditDate, @Type) + + SELECT @timestamp = timestamp FROM [dbo].[Vouchers] WHERE VoucherID = @VoucherID +")) + { + cmd.Parameters.Add("@VoucherID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@VoucherID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@Code", System.Data.SqlDbType.Int); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Ref", voucher.Ref); + + cmd.Parameters.Add("@Date", System.Data.SqlDbType.DateTime); + if (voucher.Date.HasValue) + cmd.Parameters["@Date"].Value = voucher.Date.Value; + else + cmd.Parameters["@Date"].Value = DBNull.Value; + cmd.Parameters["@Date"].Direction = System.Data.ParameterDirection.InputOutput; + + cmd.Parameters.AddWithValue("@Narration", voucher.Narration); + cmd.Parameters.AddWithValue("@UserID", voucher.UserID); + cmd.Parameters.Add("@CreationDate", System.Data.SqlDbType.DateTime); + cmd.Parameters["@CreationDate"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@LastEditDate", System.Data.SqlDbType.DateTime); + cmd.Parameters["@LastEditDate"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Type", voucher.Type); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + voucher.VoucherID = (Guid)cmd.Parameters["@VoucherID"].Value; + voucher.Code = (int)cmd.Parameters["@Code"].Value; + voucher.CreationDate = (DateTime)cmd.Parameters["@CreationDate"].Value; + voucher.LastEditDate = (DateTime)cmd.Parameters["@LastEditDate"].Value; + voucher.Date = (DateTime)cmd.Parameters["@Date"].Value; + voucher.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + + return true; + } + } + public VoucherBO GetVoucher(Guid voucherID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Vouchers WHERE VoucherID = @VoucherID"); + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public bool Delete(Guid voucherID) + { + using (SqlCommand cmd = new SqlCommand("DELETE from Vouchers where VoucherID = @VoucherID")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucherID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + public bool Update(VoucherBO voucher) + { + using (SqlCommand cmd = new SqlCommand(@" + SELECT @LastEditDate = GETDATE(), + @Date = COALESCE(@Date, GETDATE()) + + UPDATE [Vouchers] + SET [Ref] = @Ref, + [Date] = @Date, + [Narration] = @Narration, + [UserID] = @UserID, + [LastEditDate] = @LastEditDate, + [Type] = @Type + WHERE [VoucherID] = @VoucherID + + SELECT @Code = Code, @CreationDate = CreationDate, @timestamp = timestamp + FROM [Vouchers] + WHERE [VoucherID] = @VoucherID +")) + { + cmd.Parameters.AddWithValue("@VoucherID", voucher.VoucherID); + cmd.Parameters.AddWithValue("@Code", voucher.Code); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Ref", voucher.Ref); + + cmd.Parameters.Add("@Date", System.Data.SqlDbType.DateTime); + if (voucher.Date.HasValue) + cmd.Parameters["@Date"].Value = voucher.Date.Value; + else + cmd.Parameters["@Date"].Value = DBNull.Value; + cmd.Parameters["@Date"].Direction = System.Data.ParameterDirection.InputOutput; + + cmd.Parameters.AddWithValue("@Narration", voucher.Narration); + cmd.Parameters.AddWithValue("@UserID", voucher.UserID); + cmd.Parameters.Add("@CreationDate", System.Data.SqlDbType.DateTime); + cmd.Parameters["@CreationDate"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@LastEditDate", System.Data.SqlDbType.DateTime); + cmd.Parameters["@LastEditDate"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Type", voucher.Type); + cmd.Parameters.AddWithValue("@timestamp", voucher.timestamp); + connection.ExecuteNonQuery(cmd); + voucher.Code = (int)cmd.Parameters["@Code"].Value; + voucher.CreationDate = (DateTime)cmd.Parameters["@CreationDate"].Value; + voucher.LastEditDate = (DateTime)cmd.Parameters["@LastEditDate"].Value; + voucher.Date = (DateTime)cmd.Parameters["@Date"].Value; + voucher.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + } +} diff --git a/Tanshu.Accounts.SqlDAO/WaiterDAO.cs b/Tanshu.Accounts.SqlDAO/WaiterDAO.cs new file mode 100644 index 0000000..384b5d0 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/WaiterDAO.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.SqlClient; +using Tanshu.Accounts.Contracts; +using Tanshu.Data.DAO; +using Tanshu.Accounts.DAOFactory; + +namespace Tanshu.Accounts.SqlDAO +{ + public class WaiterDAO : BaseDAO, IWaiterDAO + { + public WaiterDAO(IConnectionDAO connection) + + : base(connection) + { } + public bool Insert(WaiterBO waiter) + { + using (SqlCommand cmd = new SqlCommand(@" +SELECT @WaiterID = NEWID(), @Code = ISNULL(MAX(Code), 0) + 1 FROM Waiters; +INSERT INTO Waiters (WaiterID, Code, Name) VALUES (@WaiterID, @Code, @Name); +SELECT @timestamp = timestamp FROM Waiters WHERE WaiterID = @WaiterID; +")) + { + cmd.Parameters.Add("@WaiterID", System.Data.SqlDbType.UniqueIdentifier); + cmd.Parameters["@WaiterID"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.Add("@Code", System.Data.SqlDbType.Int); + cmd.Parameters["@Code"].Direction = System.Data.ParameterDirection.Output; + cmd.Parameters.AddWithValue("@Name", waiter.Name); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + waiter.WaiterID = (Guid)cmd.Parameters["@WaiterID"].Value; + waiter.Code = (int)cmd.Parameters["@Code"].Value; + waiter.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public bool Update(WaiterBO waiter) + { + using (SqlCommand cmd = new SqlCommand(@" +UPDATE Waiters SET Name = @Name, Code = @Code WHERE WaiterID = @WaiterID; +SELECT @timestamp = timestamp FROM Waiters WHERE WaiterID = @WaiterID; +")) + { + cmd.Parameters.AddWithValue("@WaiterID", waiter.WaiterID); + cmd.Parameters.AddWithValue("@Code", waiter.Code); + cmd.Parameters.AddWithValue("@Name", waiter.Name); + cmd.Parameters.Add("@timestamp", System.Data.SqlDbType.Timestamp); + cmd.Parameters["@timestamp"].Direction = System.Data.ParameterDirection.Output; + connection.ExecuteNonQuery(cmd); + waiter.timestamp = (byte[])cmd.Parameters["@timestamp"].Value; + return true; + } + } + public bool Delete(Guid waiterID) + { + bool result; + using (SqlCommand cmd = new SqlCommand("SELECT Count(*) FROM SaleVoucher WHERE WaiterID = @WaiterID")) + { + cmd.Parameters.AddWithValue("@WaiterID", waiterID); + result = 0 == (int)connection.ExecuteScalar(cmd); + } + if (result == false) + return false; + using (SqlCommand cmd = new SqlCommand("DELETE FROM Waiters WHERE WaiterID = @WaiterID")) + { + cmd.Parameters.AddWithValue("@WaiterID", waiterID); + connection.ExecuteNonQuery(cmd); + return true; + } + } + + public WaiterBO GetWaiter(Guid waiterID) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Waiters WHERE WaiterID = @WaiterID"); + cmd.Parameters.AddWithValue("@WaiterID", waiterID); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + public WaiterBO GetWaiter(int code) + { + SqlCommand cmd = new SqlCommand("SELECT * FROM Waiters WHERE Code = @Code"); + cmd.Parameters.AddWithValue("@Code", code); + return BusinessObjectDAO.GetBusinessObject(connection.ExecuteReader(cmd)); + } + + public List GetWaiters() + { + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader("SELECT * FROM Waiters ORDER BY Name")); + } + public List GetFilteredWaiters(Dictionary filter) + { + string name = string.Format("%{0}%", filter["Name"].Trim()); + using (SqlCommand cmd = new SqlCommand("SELECT * FROM Waiters WHERE Name LIKE @Name ORDER BY Name")) + { + cmd.Parameters.AddWithValue("@Name", name); + return BusinessObjectDAO.GetBusinessObjects(connection.ExecuteReader(cmd)); + } + } + } +} diff --git a/Tanshu.Accounts.sln b/Tanshu.Accounts.sln new file mode 100644 index 0000000..489b0ef --- /dev/null +++ b/Tanshu.Accounts.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.BI", "Tanshu.Accounts.BI\Tanshu.Accounts.BI.csproj", "{0B43ECD4-3701-4CD3-82EC-617D7D590BBB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.Contracts", "Tanshu.Accounts.Contracts\Tanshu.Accounts.Contracts.csproj", "{59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.PointOfSale", "Tanshu.Accounts.PointOfSale\Tanshu.Accounts.PointOfSale.csproj", "{16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.Helpers", "Tanshu.Accounts.Helpers\Tanshu.Accounts.Helpers.csproj", "{3E28AAA5-A493-4446-8188-C615245943B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.Print", "Tanshu.Accounts.Print\Tanshu.Accounts.Print.csproj", "{90C9D02C-91AF-4529-86BE-28320332DDB5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.SqlDAO", "Tanshu.Accounts.SqlDAO\Tanshu.Accounts.SqlDAO.csproj", "{B755D152-37C3-47D6-A721-3AD17A8EF316}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tanshu.Accounts.DAOFactory", "Tanshu.Accounts.DAOFactory\Tanshu.Accounts.DAOFactory.csproj", "{AC7AA7C5-4712-4992-B733-092D703E7AA9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B43ECD4-3701-4CD3-82EC-617D7D590BBB}.Release|Any CPU.Build.0 = Release|Any CPU + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59A6F8B8-12EE-4D8E-BEBB-61CB665A2C17}.Release|Any CPU.Build.0 = Release|Any CPU + {16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {16FC8CDC-B535-4CB5-92D9-AA901E0A4AA4}.Release|Any CPU.Build.0 = Release|Any CPU + {3E28AAA5-A493-4446-8188-C615245943B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E28AAA5-A493-4446-8188-C615245943B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E28AAA5-A493-4446-8188-C615245943B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E28AAA5-A493-4446-8188-C615245943B4}.Release|Any CPU.Build.0 = Release|Any CPU + {90C9D02C-91AF-4529-86BE-28320332DDB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90C9D02C-91AF-4529-86BE-28320332DDB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90C9D02C-91AF-4529-86BE-28320332DDB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90C9D02C-91AF-4529-86BE-28320332DDB5}.Release|Any CPU.Build.0 = Release|Any CPU + {B755D152-37C3-47D6-A721-3AD17A8EF316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B755D152-37C3-47D6-A721-3AD17A8EF316}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B755D152-37C3-47D6-A721-3AD17A8EF316}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B755D152-37C3-47D6-A721-3AD17A8EF316}.Release|Any CPU.Build.0 = Release|Any CPU + {AC7AA7C5-4712-4992-B733-092D703E7AA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC7AA7C5-4712-4992-B733-092D703E7AA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC7AA7C5-4712-4992-B733-092D703E7AA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC7AA7C5-4712-4992-B733-092D703E7AA9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal