TYPE=TRIGGERS triggers='CREATE DEFINER=`root`@`%` TRIGGER `accounts` BEFORE INSERT ON `accounts` \n FOR EACH ROW BEGIN\n \n DECLARE last_runningcredit DOUBLE;\n DECLARE last_runningdebit DOUBLE;\n DECLARE last_accountruncredit DOUBLE;\n DECLARE last_accountrundebit DOUBLE;\n DECLARE tot_rows INTEGER;\n \n SELECT \n runningcredit, runningdebit, id\n INTO \n last_runningcredit, last_runningdebit, tot_rows\n FROM accounts \n WHERE entityid = NEW.entityid AND account = NEW.account\n ORDER BY id DESC LIMIT 1;\n \n IF tot_rows > 0 THEN\n SET new.runningcredit = last_runningcredit + new.credit; \n SET new.runningdebit = last_runningdebit + new.debit;\n ELSE\n SET new.runningcredit = new.credit; \n SET new.runningdebit = new.debit;\n END IF;\n \n IF new.account = 1 THEN\n IF new.credit > 0 THEN\n UPDATE tillclients SET b_current = b_current - new.credit WHERE id = new.entityid;\n UPDATE tillclients SET w_current = w_current - new.credit WHERE id = new.entityid;\n ELSE\n UPDATE tillclients SET b_current = b_current + new.debit WHERE id = new.entityid;\n UPDATE tillclients SET w_current = w_current + new.debit WHERE id = new.entityid;\n END IF;\n ELSE\n IF new.credit > 0 THEN\n UPDATE suppliers SET b_current = b_current + new.credit WHERE id = new.entityid;\n UPDATE suppliers SET w_current = w_current + new.credit WHERE id = new.entityid;\n ELSE\n UPDATE suppliers SET b_current = b_current - new.debit WHERE id = new.entityid;\n UPDATE suppliers SET w_current = w_current - new.debit WHERE id = new.entityid;\n END IF;\n END IF;\n \n /***************/\n /*** ACCOUNT ***/\n SELECT \n accountruncredit, accountrundebit, id\n INTO \n last_accountruncredit, last_accountrundebit, tot_rows\n FROM accounts \n WHERE account = NEW.account\n ORDER BY id DESC LIMIT 1;\n IF tot_rows > 0 THEN\n SET new.accountruncredit = last_accountruncredit + new.credit; \n SET new.accountrundebit = last_accountrundebit + new.debit;\n ELSE\n SET new.accountruncredit = new.credit; \n SET new.accountrundebit = new.debit;\n END IF;\n \n /**** UPDATE BALANCE ****/\n SELECT COUNT(*) INTO tot_rows FROM account_balance_entity\n WHERE entityid = NEW.entityid AND account = NEW.account;\n \n IF tot_rows > 0 THEN\n UPDATE account_balance_entity\n SET \n entity_debit = new.runningdebit,\n entity_credit = new.runningcredit\n WHERE\n entityid= new.entityid AND account = new.account;\n \n UPDATE account_balance\n SET \n account_debit = new.accountrundebit,\n account_credit = new.accountruncredit\n WHERE\n account = new.account;\n ELSE\n INSERT INTO account_balance_entity\n (\n entity_debit, \n entity_credit,\n entityid,\n account\n )\n VALUES\n (\n new.runningdebit,\n new.runningcredit,\n new.entityid,\n new.account\n );\n SELECT COUNT(*) INTO tot_rows FROM account_balance\n WHERE account = NEW.account;\n \n IF tot_rows > 0 THEN\n \n UPDATE account_balance\n SET \n account_debit = new.accountrundebit,\n account_credit = new.accountruncredit\n WHERE\n account = new.account;\n \n ELSE\n INSERT INTO account_balance\n (\n account_debit,\n account_credit,\n account\n )\n VALUES\n (\n new.accountrundebit,\n new.accountruncredit,\n new.account\n );\n END IF;\n \n END IF;\nEND' sql_modes=0 definers='root@%' client_cs_names='utf8' connection_cl_names='utf8_general_ci' db_cl_names='latin1_swedish_ci'