Forum
Merhabalar,
Eski programdan yeni geçilen Winner'a taksitleri toplu olarak aktarmak istiyorum.(Yakında gerekecek:)
Alışveriş>Devir Gir , işlemini toplu yapabileceğimiz bir yöntem yani aradığım.
Müşterileri Winnera aktardığımızı ve elimizde;
(Winner Müşteri No) , (Tarih) , (Tutar) olacak şekilde bir excel bulunduğunu kabul edersek;
Bu müşteri taksitlerinin en kolay yoldan toplu aktarımını nasıl yapabiliriz?
(Dışveri Al da satış aktarımları ile yapabilirmiyim diye baktım ama olmuyor sanırım.
Aslında bu devir sırasında PAD kodlu bir alışveriş işleniyor ama satış aktarımlarında devir filtre dışı kalmış.)
5-6 adımlı karmaşık sorguyu excelde şekillendirmek zorunda kalmadan önce sorayım dedim varmıdır pratik bir yolu?
Aşağıdaki uygulamayı yazarak aktardım,
pratik bi yolu varsa üzülecem uğraştığım için.[:)]
Bu formatta bir exceli .csv olarak farklı kaydediyoruz.
Merhaba;
Siz sorununuz gidermişsiniz fakat benide uğraştırdığı için paylaşmak istedim 🙂
Taksitleri taşımak için aşağıda ki işlemleri sırası ile yapmalısınız.
1-Aşağıdaki sql ile musteritaksit tablosu önce oluşmalı.
2-2.sql olduğu gibi .Taksitleri musteritaksit tablosuna atmalısınız alisverisID ve taksitID siz DB de son ID ye bakıp kendiniz vermelisiniz.
ben boş birdb de işlemleri yaptım.
3-3 nolu sql çalıştırmadan önce sql içinde 2 yerde mağaza 1 yerde kodu kasiyer kodu ve tarihi vermelisiniz.
--1 .sql musteritaksit isimli tabel oluşturmanızı sağlar.
create table musteritaksit
(
musteriID int ,
tarih smalldatetime ,
taksit money ,
alisverisID int ,
taksitID int ,
)
--2 kayıtları table atmak için exel de hazırlanan dosya yı alanları doldurup text bir dosyaya dönüştürülmüş hali.
--select * from tbmusteri
--select * from musteritaksit
set dateformat dmy
insert into musteritaksit values ('1', '18/01/2010' ,900.10 , 0 , 0 )
insert into musteritaksit values ('1', '18/02/2010' ,900.10 , 0 , 0 )
insert into musteritaksit values ('1', '18/03/2010' ,900.10 , 0 , 0 )
insert into musteritaksit values ('1', '18/04/2010' ,900.10 , 0 , 0 )
insert into musteritaksit values ('2', '18/01/2010' ,1900.10 , 0 , 0 )
insert into musteritaksit values ('2', '18/02/2010' ,1900.10 , 0 , 0 )
--3 Kayıtları bu sql ile tabel a işleyebilirisniz.
declare @sDepo char (4)
set @sDepo ='m001' -- DoĞRU mağaza kodu yazmalısınız.
Declare @AlisverisID int
Declare @TaksitID int
select @AlisverisID = nSonID from tbAVSiraNo where sDepo = @sDepo and nSiraIndex = 1
set @AlisverisID = @AlisverisID + 1000
-- select * from musteritaksit
Declare @MusteriID int
WHILE (select count (*) from musteritaksit where alisverisID = 0 ) > 0
BEGIN
set @MusteriID = (select top 1 musteriID from musteritaksit where alisverisID = 0 )
update musteritaksit set alisverisID = @AlisverisID where musteriID = @MusteriID
set @MusteriID = 0
set @AlisverisID = @AlisverisID + 1
END
update tbAVSiraNo set nSonID = @AlisverisID +10 where sDepo = @sDepo and nSiraIndex = 1
---------
select @TaksitID = nSonID from tbAVSiraNo where sDepo = @sDepo and nSiraIndex = 3
set @TaksitID = @TaksitID + 1000
-- select * from musteritaksit
--Declare @MusteriID int
Declare @Tarih smalldatetime
WHILE (select count (*) from musteritaksit where taksitID = 0 ) > 0
BEGIN
set @MusteriID = (select top 1 musteriID from musteritaksit where taksitID= 0 order by musteriId , tarih )
set @Tarih = (select top 1 tarih from musteritaksit where taksitID= 0 order by musteriId , tarih )
update musteritaksit set taksitId= @TaksitID where musteriID = @MusteriID and tarih = @Tarih
set @MusteriID = 0
set @TaksitID = @TaksitID + 1
END
update tbAVSiraNo set nSonID = @TaksitID +10 where sDepo = @sDepo and nSiraIndex = 3
Insert Into tbAlisVeris
select alisverisId , 'PAD' , '01/10/2009' as DevirTarihi , 3, 0, musteriID, 'm001' ---doğru depo kodunu yazmalısınız
as Depo , '1'--doğru kasiyer kodunu yazmalısınız
as kasiyerrumuzu ,
tbMusteri.sAdi, tbMusteri.sSoyadi , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '' , SUM (taksit), '' , 0, Null, 'sa' , getdate() ,'TL..Kr.'
from musteritaksit , tbMusteri
where musteritaksit.musteriID = tbMusteri.nmusteriId
group by musteriID , alisverisId ,sAdi , sSoyadi
Insert Into tbTaksit
select taksitID , alisverisID , tarih , sum (taksit) as taksit
from musteritaksit , tbMusteri
where musteritaksit.musteriID = tbMusteri.nmusteriId
group by taksitID , alisverisID , tarih
-- select * from tbTaksit
-- delete tbTaksit
-- select * from tbAlisVeris
-- delete tbAlisVeris
Projeniz hayırlı olsun başarılar dilerim.
Teşekkür ederim, sizide uğraştırdık[:)]
Rica ederim 🙂
kolay gelsin .