I have dealt with this for years, it is of the utmost urgency to get you out there ASAP to do the job, then paying you, well that will come when they get around to it.
My solution was same as DaveG, I doubled my pricing. I also on several occasions told them I couldn't get to it until next week. They paniced because they didn't have anyone else who could do it. When asked what they needed to do to get me out there this week, I said a check when I show up for $xxx would get me there tomorrow. When I got there, they gave me the check and I did the job. If the check wasn't in my hand, I got back in my vehicle and drove away and would never do any work for them again.
The thing you have to watch out for is if they are into you for a lot of money, you can't just walk away or quit working for them. They might not pay you what they already owe you.
As far as a company changing terms on your invoice and giving themselves discounts, that is illegal in most states. I had one home builder do that to me. He gave himself a 10% discount, when I called him on it he told me to cash the check and he would send the rest. My attorney told me to return the check and gave me a letter to send with the check. Basically that letter said that deducting 10% from my bill was not acceptable and if the full balance was not paid within 10 days of the date of the letter we would pursue collection thru the court system. The builder called me and asked if I was willing to spend attorney fees and court costs to get $250 or accept $25 less. I explained that on the invoice he signed, he agreed to pay all costs involved in collection of the bill so it didn't matter to me. He would also have his attorney to pay. So his $250 bill would be over $1000 by the time it was all said and done.
His response was he would pay the bill, which he did. Then had the nerve to call me again about 2 months later for another job. I told him I would meet him at the job site, tell him how much and he could write me a check on the spot. He agreed, then when I get there he is a no show. His employee was there and told me the builder couldn't make it, for me to do the work and they would cut a check and mail it tomorrow. I said find someone else to do it, and left.
On shooting sports...If you see it happen then you didn't get it.