Witam
Mam problem ze zrobieniem takie kalkulatora dla kilku faktur i wpłat.Może ktoś przerabiał coś podobnego i trochę mi pomoże.
Mam 2 tabele:
CREATE TABLE `naleznosci` (
`id` int(6) NOT NULL,
`faktura` varchar(255) default NULL,
`kwota` float(9,2) default '0.00',
`termin` date default NULL,
`idd` int(5) NOT NULL auto_increment,
PRIMARY KEY (`idd`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=cp1250;
INSERT INTO `naleznosci` VALUES ('1', 'xxxx', '10.00', '2015-06-08', '1');
INSERT INTO `naleznosci` VALUES ('1', 'yyyy', '5.00', '2015-11-18', '2');
INSERT INTO `naleznosci` VALUES ('1', 'zzzz', '5.00', '2005-10-01', '3');
i
CREATE TABLE `wplaty` (
`id` int(11) NOT NULL auto_increment,
`naleznosci_id` int(11) NOT NULL,
`kwota` float(10,2) default NULL,
`data_wplaty` date default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=cp1250;
INSERT INTO `wplaty` VALUES ('1', '1', '50.00', '2015-11-16');
INSERT INTO `wplaty` VALUES ('2', '1', '4.00', '2006-07-14');
Problem polega na tym że z tych 2 muszę uzyskać trzecią tabele w której będa pola:
naleznosci.id,naleznosci.faktura,naleznosci.kwota,naleznosci.termin,wplaty.kwota
,wplaty.data_wplaty
ale z pewnymi warunkami (wpłaty nie są na faktury, trzeba je zaliczać na najstarszą):
- jeśli kwota wpłaty jest równa kwocie faktury to wszystko mamy w jednym wierszu
- jeśli kwota jest większa od faktury do wypełniamy ją do wysokości faktury a resztę przenosimy na drugą fakturę (do kolejnego wiersza)
- kolejną wpłatę (w trzecim wierszu) wpisujemy na tą fakturę która jeszcze nie jest dopełniona (oczywiście umniejszoną o resztę wcześniejszej wpłaty) itd.
Jest to dość skomplikowana operacja i nie bardzo mogę sobie z nią poradzić. Próbowałem coś na kursorach ale poległem Może ktoś coś pomoże.