PDA

Orijinalini görmek için tıklayınız : PHP Bilgisi Olan varmı acaba



EmrahERKAN
26-03-2014, 09:17
Forumumuzda her konudan anlayan insan çıkıyor bundan da anlayan çıkacaktır diye düşünüyorumm.

Benim sorunum

http://i61.tinypic.com/2n8dlr9.png




<?php
include("inc/db.php");
include("inc/fon.php");
$STOK_KODU = $_POST['stok'];
$CARI_KOD = $_POST['cari'];
$ADET = $_POST['adet'];
$fiyat = $_POST['fiyat'];
$indirim = $_POST['indirim'];
$unique = $_POST['unique'];
$id = $_POST['id'];
foreach ($id as $key => $value) {
//echo $ADET[$key]."<br>";
//echo $fiyat[$key]."<br>";
$sql = "INSERT INTO TBLXML (ID,STOK_KODU,CARI_KODU,ADET,FIYAT,INDIRIM) VALUES ('$id[$key]','$STOK_KODU[$key]','$CARI_KOD[$key]','$ADET[$key]','$fiyat[$key]','$indirim[$key]')";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die(
print_r( sqlsrv_errors(), true));
}else{

}

$kernel = new COM("NETOPENX50.Kernel") or die("Unable to instantiate Netopenx50.Kernel");
$Sirket = $kernel->yenisirket(0, "EMRAH", "TEMELSET", "", "NETSIS", "NET1", "0");


//Bu Kısım Döngüye Girmeyecek
$Fatura = $kernel->yeniFatura($Sirket, 0);
$Fatura->Ust->FATIRS_NO = $Fatura->YeniNumara("W");
$Fatura->Ust->CariKod = $CARI_KOD[$key];
$Fatura->Ust->Tarih = date("d-m-Y");
$Fatura->Ust->FiiliTarih = date("d-m-Y");
$Fatura->Ust->ENTEGRE_TRH = date("d-m-Y");
$Fatura->Ust->FIYATTARIHI = date("d-m-Y");
$Fatura->Ust->SIPARIS_TEST = date("d-m-Y");
$Fatura->Ust->Proje_Kodu = "PLAZA-SERVIS";
$Fatura->Ust->KOD1 = "P";
$Fatura->Ust->PLA_KODU = "SERVIS";
$Fatura->Ust->GEN_ISK1T = $indirim[$key];
$Fatura->Ust->Aciklama = $id[$key];
//Bu Kısım DÖngüye Girmeyecek


$FatKalem = $Fatura->kalemYeni ($STOK_KODU[$key]);
$FatKalem->STra_GCMIK = $ADET[$key];
$FatKalem->STra_BF = $fiyat[$key];
$FatKalem->Depo_Kodu = "01";
$FatKalem->ProjeKodu ="PLAZA-SERVIS";
$Fatura->kayitYeni();

$kernel->FreeNetsisLibrary();
echo "Tamam";
}
?>


Her farklı id farklı bir faturadır.
Yukarıdaki Resimde görüldüğü gibi DB var ben bu DB yi bir program vasıtası ile Ticari programımıza almak istiyorum.

Foreach ile Döngüye sokuyorum Ancak şunu istiyorum Yukarıda görünen CARI_KOD,INDIRIM,ID alanlari döngüye girmesin. Diğer alanlar döngüye girecek. yani şu olacak örnek olarak

A carisine 10 Tane ürün ekleyeceğiz.
B carisine 2 Tane ürün ekleyeceğiz Şeklinde

Ben Bunları Foreach ile döngüye alıyorum ama hepsini alıyor ben hepsini almasını istemiyorum.

Bu Kısım döngüye girmeyecek Denilen yerler döngüye girmeyecek. Ama O Bilgiler içerisinden Cari kodu indirimi ve id bilgisini alacak.

Bu Konuda cok acil yardımlarınıza ihtiyacım var.

tunerviper
26-03-2014, 09:43
php bilmiyorum ama ben c# geliştiriyorum. NetOpenX ile bir örnek vereyim.

SIRS = kernel.yeniFatura(sirket, TFaturaTip.ftSFat);
SIRSUST = SIRS.Ust();
SIRSUST.FATIRS_NO = Fatno;
SIRSUST.CariKod = netrs.FieldByName("CUSTOMER_CODE").AsString;
SIRSUST.Tarih = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSUST.FiiliTarih = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSUST.ENTEGRE_TRH = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSUST.FIYATTARIHI = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSUST.SIPARIS_TEST = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSUST.TIPI = TFaturaTipi.ft_Acik;
SIRSUST.KDV_DAHILMI = false;
SIRSUST.Degissin = TFatUstDegissin.fudKur;
SIRSUST.Sube_Kodu = 0;
SIRSUST.EKACK2 = netrs.FieldByName("IVA_DESCRIPTION").AsString;
SIRSUST.EKACK3 = netrs.FieldByName("VESSEL").AsString;
SIRSUST.EKACK4 = netrs.FieldByName("POL").AsString + netrs.FieldByName("LINE").AsString;
SIRSUST.EKACK5 = netrs.FieldByName("VOYAGE").AsString;
SIRSUST.EKACK6 = netrs.FieldByName("DATE_CURRENCY").AsString;
SIRSUST.EKACK7 = netrs.FieldByName("REMARKS").AsString;

while (!netrs.EOF)
{
SIRSKALEM = SIRS.kalemYeni(netrs.FieldByName("ACCOUNTING_CODE").AsString);
SIRSKALEM.STra_DOVFIAT = netrs.FieldByName("TOTAL_AMOUNT").AsFloat / netrs.FieldByName("QUANTITY").AsFloat; //netrs.FieldByName("TARIF").AsFloat;
SIRSKALEM.STra_GCMIK = netrs.FieldByName("QUANTITY").AsFloat;
SIRSKALEM.STra_DOVTIP = 1;
SIRSKALEM.STra_NF = SIRSKALEM.STra_DOVFIAT * netrs.FieldByName("CURRENCY_EXCHANGE").AsFloat;
SIRSKALEM.STra_BF = SIRSKALEM.STra_NF;
SIRSKALEM.D_YEDEK10 = netrs.FieldByName("INVOICE_DATE").AsDateTime;
SIRSKALEM.STra_KDV = netrs.FieldByName("IVA_PERCENT").AsFloat;
SIRSKALEM.SatirBaziAcik[1] = netrs.FieldByName("VESSEL").AsString;
SIRSKALEM.SatirBaziAcik[2] = netrs.FieldByName("POL").AsString + netrs.FieldByName("LINE").AsString;
SIRSKALEM.SatirBaziAcik[3] = netrs.FieldByName("VOYAGE").AsString;
SIRSKALEM.SatirBaziAcik[4] = netrs.FieldByName("SURCHARGE").AsString;
SIRSKALEM.SatirBaziAcik[5] = netrs.FieldByName("OPERATION_DESCRIPTION").AsString;
SIRSKALEM.SatirBaziAcik[6] = netrs.FieldByName("CONCEPT_DESCRIPTION").AsString;
SIRSKALEM.SatirBaziAcik[7] = netrs.FieldByName("CONTAINER1").AsString + netrs.FieldByName("CONTAINER2").AsString + netrs.FieldByName("CONTAINER3").AsString;
SIRSKALEM.SatirBaziAcik[8] = netrs.FieldByName("FEET").AsString + netrs.FieldByName("STATUS").AsString;
netrs.SonrakiK();
}

s2k
26-03-2014, 12:19
10 run
20 type "BAHADIR"
30 go to 10
40 end

Bööle bişeyler miydi ya :D:D:D

EmrahERKAN
26-03-2014, 13:44
Anladığım kadarıyla sende Netopenx ile XML entegrasyon tarzı bişi yapmıssınız.

Benimde yapmaya calıstıgım xml dosya içerisinden aldığım veriyi döngüye sokup fatura olarak içeriye yazdırmak

aroglu
26-03-2014, 13:50
Db varsa navicat öneririm :)

coder
26-03-2014, 14:18
Müdür sen bana bu konu ile ilgili geçenlerde akşam yazmıştın sanırım, bu akşam yardımcı olayım sana.

tunerviper
27-03-2014, 08:14
Anladığım kadarıyla sende Netopenx ile XML entegrasyon tarzı bişi yapmıssınız.

Benimde yapmaya calıstıgım xml dosya içerisinden aldığım veriyi döngüye sokup fatura olarak içeriye yazdırmak

Anladığım kadarı ile xml veriyi alıp sql'e insert ediyorsun daha sonra tablodan bu veriyi Netsis'e fatura olarak atmak istiyorsun.

php içerisinde de üst bilgileri döngüye sokmadan sadece kalem bilgilerini dongüye sokmak için while döngüsü kullanabilirsin.

Burada benim kullandığım yol bir netrs oluşturup netopenx kontrollerini kullanmak

NetRS netrs = kernel.yeniNetRS(sirket);

sonra daha önceki kodda belirttiğim

!netrs.EOF //end of file

netrs.SonrakiK();

kullanarak döngüyü çalıştırmak.

EmrahERKAN
27-03-2014, 09:11
Çok Teşekkür ederim dün akşam itibariyle çözdüm.
Sanırım sende netopenx felan kullanıyorsun.