예제 #1
0
파일: invoice.py 프로젝트: rafal-kos/pytis
    def save(self):
        if self.id is None:            
            self.creator_id = h.auth.user_id()            
            self.invoice.is_corrected = True
            self.invoice.save()
        else:
            self.modifier_id = h.auth.user_id()
        
        if self.sell_date and self.currency.value != "PLN":
            date = datetime.datetime.strptime(str(self.invoice.issueDate), "%Y-%m-%d")
            date = date - datetime.timedelta(days = 1)
            date = date.strftime('%Y-%m-%d')
            currency_symbol = self.currency.value
            currency_date = str(date)

            currency = Currency.get(currency_symbol, currency_date)
            if currency is not None:
                self.currency_symbol = currency.symbol
                self.currency_value = currency.value
                self.currency_date = currency.date
                self.currency_table_number = currency.tableNumber                             
                     
        meta.Session.add(self)
        meta.Session.commit()
        
예제 #2
0
파일: order.py 프로젝트: rafal-kos/pytis
 def save(self):
     if self.id is None:            
         self.series_year = datetime.datetime.now().year                 
     
     if not self.currency:            
         self.currency = Dictionary.query().get(self.idCurrency)               
     
     if self.currency.value != "PLN":                       
         currencySymbol = self.currency.value
         if self.order and self.order.places:
             currencyDate = str(self.order.places[0].date)
         else:
             '''
             Jeśli nie przypisano zlecenia lub zlecenie
             nie ma miejsc zał./rozł. biorę datę aktualną
             '''
             date = datetime.datetime.now()
             currencyDate = date.strftime('%Y-%m-%d')            
         
         currency = Currency.get(currencySymbol, currencyDate)
         if currency is not None:
             self.currencySymbol = currency.symbol
             self.currencyValue = currency.value
             self.currencyDate = currency.date
             self.currencyTableNumber = currency.tableNumber                
             self.real_value = float(self.freight) * float(self.currencyValue) 
     else:
         self.real_value = self.freight 
     
     meta.Session.add(self)
     meta.Session.commit()                
예제 #3
0
파일: order.py 프로젝트: rafal-kos/pytis
    def save(self):        
        if self.id is None:            
            self.series_year = datetime.datetime.now().year            
            self.idCreator = h.auth.user_id()
        else:
            self.idModUser = h.auth.user_id()

        from pytis.model.invoice import InvoicePosition
        element = InvoicePosition.query.optimized_view().filter_by(order_id = self.id).first()
        if element:        
            element.value = self.freight
            element.currency = self.currency
            element.save()        
            
            element.invoice.save()    
        
        if not self.currency:            
            self.currency = Dictionary.query().get(self.idCurrency)    
        
        if self.currency and self.currency.value != "PLN":                              
            '''Sprawdzam czy brany jest kurs z dnia załadunku czy dnia poprzedzającego'''            
            if self.places:
                if self.isCurrencyDate == YES:
                    '''Kurs z dnia załadunku'''
                    currencyDate = str(self.places[0].date)
                else:
                    '''Kurs z dnia poprzedzającego załadunek'''
                    date = datetime.datetime.strptime(str(self.places[0].date), "%Y-%m-%d")
                    date = date - datetime.timedelta(days = 1)
                    currencyDate = date.strftime('%Y-%m-%d')
            else:
                '''
                Podczas tworzenia nowego zlecenia bez miejsca załadunku
                pobierany jest kurs z dnia utworzenia
                '''
                date = datetime.datetime.now()
                currencyDate = date.strftime('%Y-%m-%d')
            
            '''Symbol waluty'''
            currencySymbol = self.currency.value
            
            '''Pobranie kursu'''
            currency = Currency.get(currencySymbol, currencyDate)
            if currency is not None:
                self.currencySymbol = currency.symbol
                self.currencyValue = currency.value                
                self.currencyDate = currency.date
                self.currencyTableNumber = currency.tableNumber
                self.real_value = float(self.freight) * float(self.currencyValue)                            
        else:
            self.real_value = self.freight                    
            
        meta.Session.add(self)
        meta.Session.commit()
예제 #4
0
파일: invoice.py 프로젝트: rafal-kos/pytis
    def save(self):
        if self.is_exported:
            return

        if self.id is None:            
            self.idCreator = h.auth.user_id()
        else:            
            self.idModUser = h.auth.user_id()

        if self.issueDate and self.elements and self.elements[0].order.currency.value != "PLN":
            '''Bierzemy kurs z dnia poprzedzajacego dzien sprzedaży'''            
            date = datetime.datetime.strptime(str(self.issueDate), "%Y-%m-%d")
            date = date - datetime.timedelta(days = 1)
            date = date.strftime('%Y-%m-%d')
            currencySymbol = self.elements[0].order.currency.value
            currencyDate = str(date)

            currency = Currency.get(currencySymbol, currencyDate)
            if currency is not None:
                self.currencySymbol = currency.symbol
                self.currencyValue = currency.value
                self.currencyDate = currency.date
                self.currencyTableNumber = currency.tableNumber         
                                                 
        if  self.elements: 
            if self.tax.name != 'NPO' and "EUR" in [element.order.currency.value for element in self.elements]:                
                '''Zmiana waluty dla polskiego kontrahenta z zleceniem na EURO'''
                currency = Dictionary.query.filter_by(value = "PLN").one()
                for element in self.elements:
                    if element.order.currency.value != "PLN":
                        element.value = element.order.freight * (element.order.currencyValue or 1)
                        element.currency = currency
                        element.save()

                        if element.order.transport_order and element.order.transport_order.currency.value != "PLN":
                            element.order.transport_order.save()
            else:
                for element in self.elements:
                    if element.currency.value != element.order.currency:
                        element.currency = element.order.currency
                        element.save()

            for element in self.elements:
                element.tax = self.tax

        meta.Session.add(self)
        meta.Session.commit()