PDA

View Full Version : سوال: صدور فاکتور



mohsen.nsb44
چهارشنبه 24 دی 1393, 15:17 عصر
سلام من یک سیستم فروش تحت وب دارم که با بارکد خوان قراره بارکد رو بخونه و در دیتابیس ذخیره کنه

فرضا مشتری میاد 2 تا خودکار 5 تا مداد میخره
و اطلاعات کد اون محصول در دیتابیس ذخیره میشه
حالا چطور باید واسش فاکتور صادر کنم؟

fakhravari
چهارشنبه 24 دی 1393, 22:37 عصر
فاکتور منظورت پرینت دیگه!
برنامه گزارش گیری و ساخت گزارش با css

mohsen.nsb44
پنج شنبه 25 دی 1393, 09:57 صبح
فاکتور منظورت پرینت دیگه!
برنامه گزارش گیری و ساخت گزارش با css

متوجه منظورم نشدین
فرض کنید من 2 تا خودکار و 5 تا مداد فروختم
و اطلاعات در بانک دخیره شد
حالا گزینه ای دارم به اسم صدور فاکتور
برای صدور فاکتور فرضا یک گریدویو لازم دارم که این 2 تا خودکار و 5 تا مداد رو توش اتوماتیک اورده باشه
جایی هم باشه که اسم خریدار و شماره تلفنش وارد بشه و بعد پرینت گرفته بشه
و الی اخر

alireza_rashvand
پنج شنبه 25 دی 1393, 12:11 عصر
سلام.
مهم اینکه تو دیتابیس چطور ذخیره می کنی

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


توصیه شدید می کنم از گزارش گیر ها و غیره استفاده نکن , بهترین نوع گزارش خود کد html , هر جور هم دوست داشته باشی می تونی طراحیش کنی...

mohsen.nsb44
پنج شنبه 25 دی 1393, 12:41 عصر
سلام.
مهم اینکه تو دیتابیس چطور ذخیره می کنی

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


توصیه شدید می کنم از گزارش گیر ها و غیره استفاده نکن , بهترین نوع گزارش خود کد html , هر جور هم دوست داشته باشی می تونی طراحیش کنی...

شما میفرمایین با یک دکمه هم ذخیره کنم هم پرینت بگیرم این کار نشدنیه
چون ممکنه یک شخص بیش از یک کالا خریداری بکنه نمیشه که به ازای هر کالا یک پرینت بهش داد
در ضمن اطلاعات شخصی مثل نام و ... باید در فاکتور اورده بشه

alireza_rashvand
پنج شنبه 25 دی 1393, 15:30 عصر
عرض کردم شما خرید ها را نگه دارید مثلا در یک سیشن یا ارائه یا هرچیزی که می تونید بعد دکمه رو بزنید مثلا یک حلقه ایجاد کنید اطلاعات رو یک به یک بفرستید برای ذخیره در دیتابیس
بالاخره اطلاعات کاربر رو باید بگیرید دیگه یا کاربره سایتتونه که یک ایدی کفایت می کنه یا فردی است که اطلاعاتش رو ندارید باید یک فرم هم برای ثبت اطلاعاتش درست کنید تا از این فرم اطلاعات لازم رو همراه با اطلاعات محصولات خریداری شده بفرسید سمت دیتابیس برای ذخیره , وقتی شما ذخیره کردید ایدی تراکنش رو بر می گردونید (اخری رو برگرودنید کافیه)وقتی ای دی رو داشته باشید اطلاعات خریدار و محصولات رو هم دراید همه خریدا در یک زمان دارای یک فیلد مشترک باید باشند که با بدست اوردن یکی از خرید ها به دیگری هم دست پیدا کنید .
همه این ها رو خود سیستم باید انجام بده بعد از این که ذخیره کرد اطلاعات رو دریافت کرد با کوئری استریم یا سیشن می فرستیش به صفحه ی گزارشات...

خلاصه
1- نگه داشتن ایدی کالا های خریداری شده.(در یک ارایه)
2- زدن دکمه پرینت
3- محصولات در یک حلقه تک به تک ذخیره
4- بر گردوندن اخرین ای دی محصول ذخیره شده(در همان دیتابیس)
5- بدست اوردن اطلاعات محصولات باهم ذخیره شده(دادن ای دی قسمت قبل به دیتابیس و گرفتن فید مشترک)
6- فرستادن اطلاعات به صفحه پرینت

از 2 تا 6 رو باید یک جا انجام بدید....

mortezasar
پنج شنبه 25 دی 1393, 16:03 عصر
سلام شما باید دو تا جدول داشته باشین یکی هدر فاکتور و دیگری اطلاعات فاکتور به عنوان مثال (فیلدها رو به عنوان مثال وارد کردم )
هدر فاکتور -> نام مشتری - تاریخ خرید - کد فاکتور
اطلاعات فاکتور -> نام کالا - تعداد - قیمت - کد فاکتور (کد فاکتوراز جدول هدر فاکتور ) - کد
شما اطلاعاتت رو اول بیا ادد کن(خودکار -2-10000 و مداد - 5- 5000) تو گرید ویو بعد که مشتری خریدش تموم شد بیا واسش فاکتور رو ثبت کن زمانی که اطلاعات رو ثبت کردی کد فاکتور ری رو که ثبت کردی از دیتابیس بگیر و براساس اون یک سلکت بزن روی دیتا بیست و اطلاعات رو بفرست به گزارش حتی میتونی از همون گرید ویو بفرستی به گزارش و نیاز به سلکت روی بانک نباشه

mohsen.nsb44
شنبه 27 دی 1393, 10:29 صبح
سلام شما باید دو تا جدول داشته باشین یکی هدر فاکتور و دیگری اطلاعات فاکتور به عنوان مثال (فیلدها رو به عنوان مثال وارد کردم )
هدر فاکتور -> نام مشتری - تاریخ خرید - کد فاکتور
اطلاعات فاکتور -> نام کالا - تعداد - قیمت - کد فاکتور (کد فاکتوراز جدول هدر فاکتور ) - کد
شما اطلاعاتت رو اول بیا ادد کن(خودکار -2-10000 و مداد - 5- 5000) تو گرید ویو بعد که مشتری خریدش تموم شد بیا واسش فاکتور رو ثبت کن زمانی که اطلاعات رو ثبت کردی کد فاکتور ری رو که ثبت کردی از دیتابیس بگیر و براساس اون یک سلکت بزن روی دیتا بیست و اطلاعات رو بفرست به گزارش حتی میتونی از همون گرید ویو بفرستی به گزارش و نیاز به سلکت روی بانک نباشه

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

irrazor
یک شنبه 28 دی 1393, 12:38 عصر
سلام

بنظر من این مثال شاید دید بهتری بهتون بده و کمک کنه:

مثلا 2 تا جدول داریم: 1.جدول کالا و 2.جدول مشتری

جدول 1 که مشخصه اطلاعاتش اما جدول دوم. اینجاست که باید واسه سفارش هر مشتری مثلا پدرام غلامی سفارشش با یک ایدی یا شماره خرید ثابت ثبت بشه.به عنوان مثال:

ایدی | نام | نام خانوادگی | سفارش | تعداد | قیمت | تاریخ |

1 | پدرام | غلامی | خودکار | 3 | 500 | 93/10/27 |

1 | پدرام | غلامی | دفتر | 2 | 1000 | 93/10/27 |

2 | رضا | احمدی | خودکار | 3 | 500 | 93/10/27 |

اینجور تو جدول مشتریان ثبت بشه.بعد که مشتری فاکتور میخواد با استفاده از دستور select و محدود کردن سفارش به ایدی خاص با where Id به راحتی خرید های این شخص تو گرید ویو نمایش داده میشه و با یک report در گریدویو قیمت نهای گرفته میشه.

امیدوارم کمک کرده باشم.

mohsen.nsb44
یک شنبه 28 دی 1393, 15:58 عصر
سلام

بنظر من این مثال شاید دید بهتری بهتون بده و کمک کنه:

مثلا 2 تا جدول داریم: 1.جدول کالا و 2.جدول مشتری

جدول 1 که مشخصه اطلاعاتش اما جدول دوم. اینجاست که باید واسه سفارش هر مشتری مثلا پدرام غلامی سفارشش با یک ایدی یا شماره خرید ثابت ثبت بشه.به عنوان مثال:

ایدی | نام | نام خانوادگی | سفارش | تعداد | قیمت | تاریخ |

1 | پدرام | غلامی | خودکار | 3 | 500 | 93/10/27 |

1 | پدرام | غلامی | دفتر | 2 | 1000 | 93/10/27 |

2 | رضا | احمدی | خودکار | 3 | 500 | 93/10/27 |

اینجور تو جدول مشتریان ثبت بشه.بعد که مشتری فاکتور میخواد با استفاده از دستور select و محدود کردن سفارش به ایدی خاص با where Id به راحتی خرید های این شخص تو گرید ویو نمایش داده میشه و با یک report در گریدویو قیمت نهای گرفته میشه.

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

irrazor
یک شنبه 28 دی 1393, 17:27 عصر
ممنون از راهنماییتون
اما
راه حل شما یه اشکال داره اونم اینه که کاربر باید خودش شماره فاکتور که همون ایدی هست رو وارد کنه
در این صورت در صورت زیاد بودن مشتری ممکنه کاربر فراموش کنه شماره فاکتور رو تغییر بده و در نتیجه خروجی که بعد میخواد داشته باشه صحیح نخواهد بود

دوسته من وقتی اون فرد اطلاعات خرید و....هرچی رو پر میکنه شما میتونید ی session اضافه کنید(تمام خرید های اون شخض با اون ایدی که داخل session بهش تعلق داده شده ثبت میشه) با اون شماره ایدی به اون شخض بعد وقتی درخواست فاکتور میکنه اون session که همون ایدی درش قرار داره میایم دستور select رو اینجور قرار میدیم:


//SqlDataAdapter ako1= new SqlDataAdapter("select * from [Customer] where ID='" + Session["user"] + "'", akoconnection);
DataTable ako2 = new DataTable();
ako1.Fill(ako2);
GridView1.DataSource = ako2;
GridView1.DataBind();

crazy_1892
یک شنبه 28 دی 1393, 19:56 عصر
با استفاده از ابزار گزارش گیری

factor-online.ir

alireza_rashvand
یک شنبه 28 دی 1393, 22:56 عصر
متوجه نشدم دقیقا مشکل شما کجاست... راه حلی که گفتم خیلی خوب جواب می ده...

alireza_rashvand
یک شنبه 28 دی 1393, 22:58 عصر
متوجه نشدم دقیقا مشکل شما کجاست... راه حلی که گفتم خیلی خوب جواب می ده...

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

فاکتور ها در فروشگاه ها به نام فرد ثبت نمی شه یعنی اطلاعات خریدار ثبت نمی کنند چون سرعت کار بالاست شما هم که مشتری های مختلف براتون میاد بهتره این کار رو نکنید اگر واقعا نیاز دارید نام خریدار کالا مشخص باشه باید خوب فکر کنید یا این مشتری ها قبلا ثبت شده اند(مشتری ها مشخص است) یا باید فروشنده هنگاه ثبت, نام خریدار رو هم به سیستم بده راهی جز این ندارید...

اگه مشتری مشخصه یک سرج می کنید مشتری رو پیدا می کنید اگر مشتری مشخص نیست یک فیلد بزار , نام مشتری رو فروشنده ثبت کنه... همین.

بعد می مونه اطلاعات کالا ها
هر بار کدی که زده می شه ای دی کالا ثبت بشه, حالا این که ای دی ها چطور حفظ بشه با شماست... (مثلا یک لیست باکس بذار هر بار, بار کد خوان کدی رو خواند به این لیست اضافه بشه) همه کد های کالا ها مشخص شد...
یک دکمه ثبت بزار
دکمه ثبت رو که زدید اول لیست کدی های کالا ها رو بگیر بریز تو یه ارایه (یا هر روشی که راحتری) یک حلقه از لیست کد ها درست کن...
تو حلقه سه چیز می فرستی به دیتابیس...
1- نام مشتری
2- کد محصول
3- یک کد مشترک غیر تکرار(از یک رندوم چند رقمی استفاده کن که امکان تکراری بودن به وجود نیاد چه بهتر ترکیبی از کارکتر و عدد باشه)

هر بار سه تاش رو بگیر ذخیره کن... حلقه که تمام شد, یک سرچ بزن همه کالاهایی که کد مشترک( که در به صورت رندم ساخته بودید و دادید به دیتابیس) رو داشت برات برگردونه , و نمایش بده ... یا اطلاعاتش رو بفرست به صفحه ای که طراحی کردی برای گزارش گیری(html)
این کد مشترک به شما کمک می کنه تا خرید های بیش از یک کالا رو برگردونی... (هر خریدی که کد مشترک داشته باشه در یک زمان خریداری شده)

تمام!

mohsen.nsb44
دوشنبه 29 دی 1393, 10:25 صبح
دوسته من وقتی اون فرد اطلاعات خرید و....هرچی رو پر میکنه شما میتونید ی session اضافه کنید(تمام خرید های اون شخض با اون ایدی که داخل session بهش تعلق داده شده ثبت میشه) با اون شماره ایدی به اون شخض بعد وقتی درخواست فاکتور میکنه اون session که همون ایدی درش قرار داره میایم دستور select رو اینجور قرار میدیم:


//SqlDataAdapter ako1= new SqlDataAdapter("select * from [Customer] where ID='" + Session["user"] + "'", akoconnection);
DataTable ako2 = new DataTable();
ako1.Fill(ako2);
GridView1.DataSource = ako2;
GridView1.DataBind();

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

mohsen.nsb44
سه شنبه 14 بهمن 1393, 19:13 عصر
با استفاده از ابزار گزارش گیری

factor-online.ir

دوستعزیز میشه سورسشم بزاری؟