def jdate(value,format): print(type(value)) if type(value)==type(""): value = datetime.strptime(value, '%Y-%m-%d %H:%M:%S') try: value = value.replace(tzinfo=tz.gettz('UTC')).astimezone(pytz.timezone('Asia/Tehran')) except: pass try: return jdatetime.fromgregorian(datetime=value).strftime(format) except: return jdatetime.fromgregorian(date=value).strftime(format)
def jCreateDate(self): return jd.fromgregorian( year=self.CreateDate.year, month=self.CreateDate.month, day=self.CreateDate.day, hour=self.CreateDate.hour, minute=self.CreateDate.minute).strftime("%H:%M %d-%m-%Y")
def jd_transaction_time(self): return jd.fromgregorian( year=self.transaction_time.year, month=self.transaction_time.month, day=self.transaction_time.day, hour=self.transaction_time.hour, minute=self.transaction_time.minute, second=self.transaction_time.second, )
def get_persian_newspaper_date(self): return jalali_datetime.fromgregorian(datetime=self.newspaper_date).strftime('%Y/%m/%d')
def get_persian_certificate_start_date(self): return jalali_datetime.fromgregorian(datetime=self.certificate_start_date).strftime('%Y/%m/%d')
def get_persian_birth_date(self): return jalali_datetime.fromgregorian(datetime=self.birth_date).strftime('%Y/%m/%d')
else: raise ValueError except (ValueError, OverflowError): print() pass else: items = list() i = 0 print("There are", len(values), "items for column", name) print("Done with 0%", end='') for row in values: i += 1 if i % 1000 == 0: print(int(i / len(values) * 100), end='%, ', flush=True) try: jalali_date = datetime.fromgregorian( datetime=parser.parse(str(row))) if also_group_bye: for argument in sys.argv[1:]: selected_column = int(argument) - 1 selected_column_name = df.columns[selected_column] # print("ASDASDASD", grouped, flush=True) grouped_date = jalali_date.strftime("%Y-%m") # print("B", selected_column_name, df.values[i][selected_column], flush=True) # print("I", i, flush=True) grouped.update( { grouped_date: [ grouped.get(grouped_date, [0, 0])[0] + int(df.values[i - 1][selected_column]), grouped.get(grouped_date, [0, 0])[1] + 1, ] }
def get_persian_newspaper_date(self): return jalali_datetime.fromgregorian( datetime=self.newspaper_date).strftime('%Y/%m/%d')
def jalali_date_verify(self): return jalali.fromgregorian( datetime=self.date_verify).strftime("%d %b %Y")
def get_persian_birth_date(self): return jalali_datetime.fromgregorian( datetime=self.birth_date).strftime('%Y/%m/%d')
def save(self, order): # get settings settings = s.get('invoices') # current date and time in jalali calendar date_frmt = '%Y/%m/%d' time_frmt = '%H:%M:%S' current_date = jdatetime.now().date().strftime(date_frmt) current_time = jdatetime.now().date().strftime(time_frmt) # order date and time in jalali calendar order_datetime = jdatetime.fromgregorian( datetime=order['created_date']) order_date = order_datetime.date().strftime(date_frmt) order_time = order_datetime.time().strftime(time_frmt) # detect customer if not order['customer_id']: customer_id = settings['guest'] else: try: customer_map = self.customer_map.get(wcid=order['customer_id']) customer_id = customer_map.id except DoesNotExists: self.customer.create({ 'Code': self.customer.max('Code') + 1, 'Fname': order['first_name'], 'LName': order['last_name'], 'Name': '{} {}'.format(order['first_name'], order['last_name']), 'BuyPriceLevel': settings['price_level'], 'SellPriceLevel': settings['price_level'], 'StartDate': current_date, 'Prefix': '', 'ShiftTo': '23:59:59', 'ShiftFrom': '00:00:00', 'Visitor': 0, 'CarryPrice': 0, 'VisitorBed': 0, 'EtebarNaghd': 0, 'VisitorPerc': 0, 'EtebarCheque': 0, 'MablaghAvalDore': 0, }) customer_id = self.customer.max('ID') self.customer_map.create({ 'id': customer_id, 'wcid': order['customer_id'], 'last_update': datetime.now() }) # get next invoice No invoice_no = self.invoice.custom_sql("SELECT dbo.NewFactorNo(?)", [settings['type']], method='fetchval') # prepare invoice fields fields = { 'FactorNo': invoice_no, 'FishNo': invoice_no, 'Type': settings['type'], 'IDShakhs': customer_id, 'UserID': 1, 'Date': order_date, 'Time': order_time, 'PaymentDate': order_date, 'DeliverDate': order_date, 'InsertDate': current_date, 'InsertTime': current_time, 'Info': '', 'JamKol': int(order['total']), 'GmeFactor': order['items_subtotal'], 'MandeFactor': int(order['total']), 'Maliat': int(order['total_tax']), 'Takhfif': order['discount'], 'TakhfifItem': order['items_discount'], 'CarryPrice': int(order['shipping_total']), 'CarryType': 0, 'Nagd': 0, 'Nagd2': 0, 'Naseh': 0, 'Naseh2': 0, 'Chek': 0, 'Chek2': 0, 'Anbar': 0, 'Confirmed': 0, 'VisitorPrice': 0, 'VisitorPerc': 0, 'PaymentValue': 0, 'PaymentType': 0, 'Tmp': 0, 'Converted': 0, 'MaliatPerc': 0, 'ServicePerc': 0, 'ServicePrice': 0 } # check for info if fields['CarryPrice']: fields['Info'] = _('carry price: {}').format(fields['CarryPrice']) # create invoice self.invoice.create(fields) invoice_id = self.invoice.max('ID') # insert items for i, item in enumerate(order['items'], 1): self.line_item.create({ 'FactorID': invoice_id, 'IDKala': item['id'], 'Tedad': item['quantity'], 'Tedad1': 0, 'Tedad2': item['quantity'], 'TedadStr': str(item['quantity']), 'Price': item['regular_price'], 'SumPrice': int(item['total']), 'Takhfif': item['discount'], 'TakhfifPerc': 0, 'TakhfifPerItem': 0, 'TakhfifIsGift': 0, 'Anbar': settings['repository'], 'Info': '', 'Row': i, 'VisitorPrice': 0, 'VisitorPerc': 0, 'PaymentValue': 0, 'PaymentType': 0, 'PaymentDate': order_date, 'JozDarKol': 0, 'Maliat': 0, 'Height': 0, 'Width': 0, 'Thick': 0, 'Density': 0, 'UnitType': 0, 'Amount': 0, 'Overhead': 0, 'Gift': 0, 'Value': 0, 'PriceLevelID': settings['price_level'], 'ValueEdited': 0 }) # create map self.invoice_map.create({ 'id': invoice_id, 'wcid': order['id'], 'last_update': datetime.now() })
def get_persian_registered_date(self): return jalali_datetime.fromgregorian(datetime=self.registered_date).strftime('%Y/%m/%d')
def jalali_last_login(self): return jalali.fromgregorian( datetime=self.last_login).strftime("%d %m %Y")
def get_jalali_string(gregorian_date): locale.setlocale(locale.LC_ALL, "fa_IR") jalali_string = jdatetime.fromgregorian( datetime=gregorian_date).strftime("%d %b %Y %H:%M:%S") return convert_english_digits_to_persian(jalali_string)
def get_persian_sign_expire_date(self): return jalali_datetime.fromgregorian(datetime=self.sign_expire_date).strftime('%Y/%m/%d')
def jbirth_date(self): return jd.fromgregorian(year=self.birth_date.year, month=self.birth_date.month, day=self.birth_date.day)
def jd_brith_date(self): return jd.fromgregorian( year=self.brith_date.year, month=self.brith_date.month, day=self.brith_date.day, )
def jalali_date_joined(self): return jalali.fromgregorian( datetime=self.date_joined).strftime("%d %b %Y")
def get_persian_certificate_expire_date(self): return jalali_datetime.fromgregorian( datetime=self.certificate_expire_date).strftime('%Y/%m/%d')