#46491194 · 16 Dec 2015, 15:11 · · პროფილი · პირადი მიმოწერა · ჩატი
კლიენტმა (საფინანსო კომპანიამ) 1 თვის წინ გადმოგვიგზავნა არსებული საიტის კოდი (procedural php კოდი), რაც ჩვენს ფრეიმვორქში ჩავსვით. ანუ wrapper გავუკეთეთ ასე ვთქვათ და ის ძველი კოდი ცალკე პაპკაში გავუშვით თავისი namespace-ით. და ნუ ამ მეთოდით უბრალოდ მომავალში ახალ ფუნქციებს უკვე ჩვენს ფრეიმვორქზე დავამატებთ და ძველ კოდს არ შევეხებით (ასე იყო შეთანხმებული კლიენტთან).
ნუ მოკლედ, რამდენიმე კვირაა ვმუშაობ ერთ ერთ ასეთ update-ზე - reporting სისტემას ვაწყობ რომელიც ყოველ ღამე cron job-ით შეინახავს იმ დღის მონაცემებს ცალკე ბაზაში. დაახლოებით 50მდე ასეთი report უნდა შეინახოს და თითოეულ report-ს თავისი გამოთვლის ლოგიკა აქვს, რაც კლიენტს აქვს excel-ში აწყობილი (იქ აწარმოებდნენ აღრიცხვებს) და მე php-ზე ვთარგმნი ასე ვთქვათ. ამისათვის მიწევს იმ ძველ კოდშიც ძრომიალი პერიოდულად, რადგან მათი ექსელის ფაილი ამ ძველ საიტზე არსებულ რაღაც კონკრეტულ ანგარიშებზე დაყრდნობით იყო აწყობილი.
პროექტის იდეა იმაში მდგომარეობს რომ კლიენტს სურს ეს რეპორტები დიდ ეკრანზე ჰქონდეს თავის ოფისში გაშვებული და live update-ები იყოს. ანუ ყოველ დღე განახლებული ვერსია ხვდებოდეს.
ამ უკანასკნელს კი Microsoft Power BI desktop-ის მეშვეობით ვაკეთებ. ეს რეპორტინგის მონაცემთა ბაზა მიბმული მაქვს და იქ გრაფები აწყობილია, ინფორმაცია იკითხება და ნუ ყველაფერი გადასარევად მუშაობს.
ეხლა რატომ ვწერე ამდენი დეტალი - დღეს გვითხრა კლიენტმა რომ ერთ ერთი რეპორტის ანგარიშში შეცდომაა გაპარული, რადგან იმ თავის დიდ ეკრანზე გამოსახული რიცხვი რაღაც მცირედით (3.43-ით) ნაკლებს აჩვენებს ვიდრე მათი ექსელის გამოთვლები. მომიწია კვლავ იმ ძველ კოდში ძრომიალი და წავაწყდი ერთ ასეთ ფუნქციას:
| CODE | | function date_for_sql($date, $reverse=false, $keep_time=true, $twodigityear=false, $longdate=false, $add_day=false, $no_quotes=false, $no_time=false, $drop_seconds=false, $mmm_yyyy=false) .. |
ანუ პირველი ცვლადის გარდა ყველას default აქვს რა  ) და დამაინტერესა ძალიან სად და როგორ იძახებენ ამ ფუნქციას და აი ისიც: | CODE | | date_for_sql($one['RX_DT'], true, false, false, false, false, false, false, false, true); |
არანაირი დოკუმენტაცია არ გააჩნია ამ კოდს. კიდევ კარგი ცვლადებში მაინც დაახლოებით წერია რა რა არის..  ) ალბათ თქვენც შეგხვედრიათ ასეთი სახის წაბილწვა პროგრამირების და მოდით თემად ვაქციოთ იქნებ..
|