آگاه‌سازی‌ها
پاک‌کردن همه

وب سرویس فاکتور

6 ارسال ها
2 کاربران
0 Likes
150 نمایش‌
0
شروع کننده موضوع

باسلام و احترام
خواهشمند است راهنمایی لازم وارد نمودن چندین محصول در یک فاکتور را در کد php بفرمایید . باتشکر

Omid Nasri 11 خرداد 1399 10:48 ق.ظ

متاسفانه در حال حاضر نمونه کد آماده وجود ندارد ولی WCFTestClient این امکان را دارد که کدهای SoapClient برای شما Generate کند. در همین فروم بخش تالار "جامعه کاربران" فایل و آموزش استفاده از WCFTestClient آورده شده است.

4 پاسخ
0
شروع کننده موضوع

سلام

 WCFTestClient  در پراپرتی Details جهت وارد کردن محصول پارامتر lenght تعداد ورودی مشخص میکند و امکان اضافه کردن چندین محصول وجود دارد ولی در کد امکان مشخص کردن پارامتر تعداد وجود ندارد ومشخصه ایی برای وارد کردن تعداد وجود ندارد 

جهت برطرف شدن مشکل  راهنمای فرمایید

این نوشته در 4 سال قبل 2 بار توسط raadina اصلاح شد
Omid Nasri 11 خرداد 1399 11:37 ق.ظ

داده‌های ردیف فاکتور رو به صورت آرایه به پراپرتی Details بدین. ثبت با موفقیت انجام میشه. تو همون نرم افزار WCFTestClient بعد از اینکه بر روی دکمه Invoke کلیک کردین در پایین صفحه نرم افزار بر روی دکمه xml کلیک کنید تا کدهای Soap جنریت شده مشاهده کنید. این پنجره در واقع نمونه کد برای ارسال داده است.

0
شروع کننده موضوع

WCFTestClient فیلد InvoiceDetailInfo کپی شده و تعداد در ابتدا درج فاکتور مشخص شده ولی در کد php پارامتر ارسالی(محصول) تعداد مشخص ندارد و داینامیک است.

خواهشمندم راهنمایی فرمایید

این نوشته در 4 سال قبل 2 بار توسط raadina اصلاح شد
0
شروع کننده موضوع

سلام این کد

 $url = 'http://192.168.20.202/Services/API/IInvoice.svc?wsdl';
// Create new instance of SoapClient to call SavePerson method.
$soapClient = new \SoapClient($url);
foreach ($rooms as $key => $room) {
for ($i = 0; $i < sizeof($room['room'][0]); $i++) {

$params = array(
'userName' => $username,
'password' => $password,
'invoiceInfo' => array
(
'CrmObjectTypeCode' => '56404167',
'AssignedTo' => "test.radina",
'InvoiceType' => 'Invoice',

'IdentityId' => implode($user_CRM_Code),

'Details' => array(

'InvoiceDetailInfo' =>
array(
'ProductCode' => $room['room'][0][$i],

'FinalUnitPrice' => $room['price']
),

),
)
);
}
}
$result = $soapClient->SaveInvoice($params);

خروجی این کد اخرین رکورد مربوط به محصول انتخاب شده در فاکتور ذخیره میکند و محصولات قبلی در فاکتور قرار نمیگیرد
امکان اینکه تمامی محصولات خریداری شده را در فاکتور قرار دهد را ندارد ،حتی امکان کپی کردن InvoiceDetailInfo وجود ندارد چون تعداد محصول انتخاب شده نیز متغیر است 

لطفا برای رفع این مشکل راهنمایی فرمایید

0

متاسفانه متوجه مشکل نشدم، اگر مشکل ویرایش فاکتور است، کافیست فاکتور قبلی جستجو و متغیرهای همان آبجکت ویرایش سپس آن آبجکت به سرویس ذخیره ارسال گردد ولی اگر مشکل تعداد موجودی به ازای هر ردیف از محصولات است از فیلد Count برای تعیین تعداد موجودی استفاده کنید و در صورتی که مشکل تعداد ردیف‌های محصول است، بله در WCFTestClient می‌توان با وارد کردن عدد مشکل کرد چند رکورد نیاز است ثبت شود ولی در PHP اگر به صورت آرایه عمل کنید و آرائه شما متشکل از دو خانه باشد همانند این می‌مانند که شما در WCFTestClient عدد 2 را انتخاب کرده باشین.

اشتراک:
پیمایش به بالا