Esempio n. 1
0
 def getGiacenza(self):
     try:
         giace = giacenzaArticolo(year=workingYear,
                                 idArticolo=self.id,
                                 allMag=True)[0]
     except:
         giace = 0
     return giace
Esempio n. 2
0
 def _setGiacenzaArticolo(self):
     if self.arti.codice not in ["Stampa", "z-CONTR","z-BONIFICO"]:
         giace =giacenzaArticolo(year=Environment.workingYear,
                                     idMagazzino=self.id_magazzino,
                                     idArticolo=self.id_articolo)[0]
     else:
         giace = 0
     return giace
Esempio n. 3
0
 def _getGiacenza(self):
     if not hasattr(self, "daData"):
         self.daData = None
     if not hasattr(self, "aData"):
         self.aData = None
     return giacenzaArticolo(
         daData=self.daData or None, aData=self.aData or None,
         idMagazzino=self.id_magazzino,
         idArticolo=self.id_articolo) or 0
    def on_calculate_button_clicked(self, button):
        idMagazzino = findIdFromCombobox(self.id_magazzino_label_combobox)
        if self.manuale_radio.get_active():
            quantitagenerale = self.quantita_entry.get_text()
            for row in self._treeViewModel:
                row[5] = quantitagenerale
        elif self.giacenza_radio.get_active():
            for row in self._treeViewModel:
                pbar(self.pbar,parziale=row.path[0]+1,totale=len(self._treeViewModel))
                if idMagazzino:
                    giacenza = giacenzaArticolo(year=Environment.workingYear,
                                            idMagazzino=idMagazzino,
                                            idArticolo=row[0].id_articolo)
                else:
                    giacenza = giacenzaArticolo(year=Environment.workingYear,
                                            idArticolo=row[0].id_articolo,
                                            allMag=True)
                if int(giacenza) <= 0:
                    row[5] = "1"
                else:
                    row[5] = str(int(giacenza))
                pbar(self.pbar,stop=True)
        elif self.movimento_radio.get_active():
            from promogest.dao.TestataMovimento import TestataMovimento
#            from promogest.dao.TestataDocumento import TestataDocumento
            for row in self._treeViewModel:
                pbar(self.pbar,parziale=row.path[0]+1,totale=len(self._treeViewModel))
                docu = TestataMovimento().select(idArticolo=row[0].id_articolo, batchSize=None)
#                docu = TestataDocumento().select(idArticolo=row[0].id_articolo, batchSize=None)
                if docu:
                    doc = docu[-1]
                    for riga in doc.righe:
                        if riga.codice_articolo == row[1]:
                            quanti = riga.quantita
                            if int(quanti) <= 0:
                                row[5] = "1"
                            else:
                                row[5] = str(int(quanti))
            pbar(self.pbar,stop=True)
def mostraArticoloPart(anaedit, id, art=None, quan=None):
    """questa funzione viene chiamata da ricerca articolo e si occupa di
        riempire la riga[0] con i dati corretti presi dall'articolo
    """
    data = stringToDate(anaedit.data_documento_entry.get_text())
    # articolo c'è
    if id is not None:
        #anaedit.dettaglio_giacenza_togglebutton.set_property("sensible", True)
        fillComboboxMultipli(anaedit.id_multiplo_customcombobox.combobox, id, True)
        articolo = leggiArticolo(id)
        if posso("PW"):
            AnagraficaDocumentiEditPromoWearExt.fillLabelInfo(anaedit, articolo)
        artic = Articolo().getRecord(id=id)
        if articleType(artic) =="father":
            anaedit.ArticoloPadre = artic
            anaedit.promowear_manager_taglia_colore_togglebutton.set_property("visible", True)
            anaedit.promowear_manager_taglia_colore_togglebutton.set_sensitive(True)
#            anaedit.on_promowear_manager_taglia_colore_togglebutton_toggled(anaedit)
            anaedit.NoRowUsableArticle = True
        if art:
            # articolo proveninente da finestra taglia e colore ...
            anaedit.NoRowUsableArticle = False
            articolo = art
            anaedit._righe[0]["idArticolo"] = id
            anaedit._righe[0]["codiceArticolo"] = articolo["codice"]
            anaedit.articolo_entry.set_text(anaedit._righe[0]["codiceArticolo"])
            anaedit._righe[0]["descrizione"] = articolo["denominazione"]
            anaedit.descrizione_entry.set_text(anaedit._righe[0]["descrizione"])
            anaedit._righe[0]["percentualeIva"] = mN(articolo["percentualeAliquotaIva"],2)
#ATTENZIONEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!
            anaedit._righe[0]["idAliquotaIva"] = articolo["idAliquotaIva"]
            findComboboxRowFromId(anaedit.id_iva_customcombobox.combobox,
                                  anaedit._righe[0]["idAliquotaIva"])
#            anaedit.percentuale_iva_entry.set_text(str(anaedit._righe[0]["percentualeIva"]))
            anaedit._righe[0]["idUnitaBase"] = articolo["idUnitaBase"]
            anaedit._righe[0]["unitaBase"] = articolo["unitaBase"]
            anaedit.unitaBaseLabel.set_text(anaedit._righe[0]["unitaBase"])
            if ((anaedit._fonteValore == "acquisto_iva") or  (anaedit._fonteValore == "acquisto_senza_iva")):
                costoLordo = str(articolo['valori']["prezzoLordo"])
                if costoLordo:
                    costoLordo = costoLordo.replace(',', '.')
                costoNetto = str(articolo['valori']["prezzoNetto"])
                if costoNetto:
                    costoNetto = costoNetto.replace(',', '.')
                if anaedit._fonteValore == "acquisto_iva":
                    costoLordo = calcolaPrezzoIva(costoLordo, anaedit._righe[0]["percentualeIva"])
                    costoNetto = calcolaPrezzoIva(costoNetto, anaedit._righe[0]["percentualeIva"])
                anaedit._righe[0]["prezzoLordo"] = mN(costoLordo)
                anaedit.prezzo_lordo_entry.set_text(str(anaedit._righe[0]["prezzoLordo"]))
                anaedit._righe[0]["prezzoNetto"] = mN(costoNetto)
                anaedit.prezzo_netto_label.set_text(str(anaedit._righe[0]["prezzoNetto"]))
                anaedit._righe[0]["prezzoNettoUltimo"] = mN(costoNetto)
                anaedit._righe[0]["sconti"] = articolo['valori']["sconti"]
                anaedit._righe[0]["applicazioneSconti"] = articolo['valori']["applicazioneSconti"]
                anaedit.sconti_widget.setValues(anaedit._righe[0]["sconti"], anaedit._righe[0]["applicazioneSconti"], False)
                anaedit._righe[0]["codiceArticoloFornitore"] = articolo['valori']["codiceArticoloFornitore"]
                anaedit.codice_articolo_fornitore_entry.set_text(anaedit._righe[0]["codiceArticoloFornitore"])
                quantita =articolo["quantita"]
                quantita = quantita.replace(',','.')
                anaedit._righe[0]["quantita"] = quantita
                anaedit.quantita_entry.set_text(anaedit._righe[0]["quantita"])
                if anaedit._righe[0]["quantita"]:
                    anaedit.calcolaTotaleRiga()
            elif anaedit._fonteValore == "vendita_iva":
                costoLordo = str(articolo['valori']["prezzoDettaglio"])
                if costoLordo:
                    costoLordo = costoLordo.replace(',','.')
                anaedit._righe[0]["prezzoLordo"] = mN(costoLordo)
                anaedit.prezzo_lordo_entry.set_text(str(anaedit._righe[0]["prezzoLordo"]))
                anaedit._righe[0]["sconti"] = articolo['valori']["scontiDettaglio"]
                anaedit._righe[0]["applicazioneSconti"] = articolo['valori']["applicazioneScontiDettaglio"]
                anaedit.sconti_widget.setValues(anaedit._righe[0]["sconti"], anaedit._righe[0]["applicazioneSconti"], False)
                quantita =articolo["quantita"]
                quantita = quantita.replace(',', '.')
                anaedit._righe[0]["quantita"] = quantita
                anaedit.quantita_entry.set_text(anaedit._righe[0]["quantita"])
                if anaedit._righe[0]["quantita"]:
                    anaedit.calcolaTotaleRiga()
                anaedit.on_show_totali_riga()
                #anaedit.refresh_combobox_listini()
            elif anaedit._fonteValore == "vendita_senza_iva":
                costoLordo = str(articolo['valori']["prezzoIngrosso"])
                if costoLordo:
                    costoLordo = costoLordo.replace(',','.')
                anaedit._righe[0]["prezzoLordo"] = mN(costoLordo)
                anaedit.prezzo_lordo_entry.set_text(str(anaedit._righe[0]["prezzoLordo"]))
                anaedit._righe[0]["sconti"] = articolo['valori']["scontiIngrosso"]
                anaedit._righe[0]["applicazioneSconti"] = articolo['valori']["applicazioneScontiIngrosso"]
                anaedit.sconti_widget.setValues(anaedit._righe[0]["sconti"], anaedit._righe[0]["applicazioneSconti"], False)
                quantita =articolo["quantita"]
                quantita = quantita.replace(',','.')
                anaedit._righe[0]["quantita"] = quantita
                anaedit.quantita_entry.set_text(anaedit._righe[0]["quantita"])
                if anaedit._righe[0]["quantita"]:
                    anaedit.calcolaTotaleRiga()
                anaedit.on_show_totali_riga()

            anaedit.on_confirm_row_button_clicked(anaedit.dialogTopLevel)
            return
        #Eccoci all'articolo normale
        anaedit._righe[0]["idArticolo"] = id
        anaedit._righe[0]["codiceArticolo"] = articolo["codice"]
        anaedit.articolo_entry.set_text(anaedit._righe[0]["codiceArticolo"])
        anaedit._righe[0]["descrizione"] = articolo["denominazione"]
        #lottiDataScadenza(idArticolo = id, data=data)
        if posso("ADR"):
            artADR = AnagraficaDocumentiEditADRExt.getADRArticolo(id)
            if artADR:
                # Aggiorna la descrizione con alcuni dati ADR
                anaedit._righe[0]["descrizione"] += "\nUN {0},, {1},, {2}, {3}".format(artADR.numero_un,
                    artADR.classe_pericolo,
                    artADR.gruppo_imballaggio,
                    artADR.galleria)
        anaedit.descrizione_entry.set_text(anaedit._righe[0]["descrizione"])

        # Recuperiamo l'aliquota preferenziale del cliente se impostata
        _id_aliquota_iva = None
        if anaedit._tipoPersonaGiuridica == "cliente":
            _id = anaedit.id_persona_giuridica_customcombobox.getId()
            if _id:
                _cliente = leggiCliente(_id)
                if _cliente and 'id_aliquota_iva' in _cliente:
                    _id_aliquota_iva = _cliente['id_aliquota_iva']
        anaedit._righe[0]["idAliquotaIva"] = _id_aliquota_iva or articolo["idAliquotaIva"]
        findComboboxRowFromId(anaedit.id_iva_customcombobox.combobox,
                              _id_aliquota_iva or anaedit._righe[0]["idAliquotaIva"])
        # Risolviamo la percentuale tramite id_iva_customcombobox
        iva = findStrFromCombobox(anaedit.id_iva_customcombobox.combobox, 0)
        if iva:
            anaedit._righe[0]["percentualeIva"] = mN(iva.percentuale, 2) or 0
        else:
            anaedit._righe[0]["percentualeIva"] = 0

        anaedit._righe[0]["idUnitaBase"] = articolo["idUnitaBase"]
        anaedit._righe[0]["unitaBase"] = articolo["unitaBase"]
        anaedit.unitaBaseLabel.set_text(anaedit._righe[0]["unitaBase"])
        anaedit._righe[0]["idMultiplo"] = None
        anaedit._righe[0]["moltiplicatore"] = 1

        if posso("GN") and anaedit.noleggio:
            anaedit._righe[0]["divisore_noleggio"] = artic.divisore_noleggio
            anaedit.coeficente_noleggio_entry.set_text(str(anaedit._righe[0]["divisore_noleggio"]))
            anaedit._getPrezzoAcquisto()

        anaedit._righe[0]["prezzoLordo"] = 0
        anaedit._righe[0]["prezzoNetto"] = 0
        anaedit._righe[0]["sconti"] = []
        anaedit._righe[0]["applicazioneSconti"] = 'scalare'
        anaedit._righe[0]["codiceArticoloFornitore"] = artic.codice_articolo_fornitore
        #inserisco dei dati nel frame delle informazioni
        anaedit.giacenza_label.set_text(str(giacenzaArticolo(year=Environment.workingYear,
                                            idMagazzino=findIdFromCombobox(anaedit.id_magazzino_combobox),
                                            idArticolo=anaedit._righe[0]["idArticolo"])))

        anaedit.quantitaMinima_label.set_text(str(artic.quantita_minima))
        # Acquisto
        if ((anaedit._fonteValore == "acquisto_iva") or  (anaedit._fonteValore == "acquisto_senza_iva")):
            fornitura = leggiFornitura(id, anaedit.id_persona_giuridica_customcombobox.getId(), data)
            costoLordo = fornitura["prezzoLordo"]
            costoNetto = fornitura["prezzoNetto"]
            if anaedit._fonteValore == "acquisto_iva":
                    costoLordo = calcolaPrezzoIva(costoLordo,
                                            anaedit._righe[0]["percentualeIva"])
                    costoNetto = calcolaPrezzoIva(costoNetto,
                                            anaedit._righe[0]["percentualeIva"])
            anaedit._righe[0]["prezzoLordo"] = costoLordo
            anaedit.prezzo_lordo_entry.set_text(str(anaedit._righe[0]["prezzoLordo"]))
            anaedit._righe[0]["prezzoNetto"] = costoNetto
            anaedit.prezzo_netto_label.set_text(str(anaedit._righe[0]["prezzoNetto"]))
            anaedit._righe[0]["prezzoNettoUltimo"] = costoNetto
            anaedit._righe[0]["sconti"] = fornitura["sconti"]
            anaedit._righe[0]["applicazioneSconti"] = fornitura["applicazioneSconti"]
            anaedit.sconti_widget.setValues(anaedit._righe[0]["sconti"], anaedit._righe[0]["applicazioneSconti"], False)
#            anaedit._righe[0]["codiceArticoloFornitore"] = fornitura["codiceArticoloFornitore"]
            anaedit.codice_articolo_fornitore_entry.set_text(anaedit._righe[0]["codiceArticoloFornitore"] or "")
        #vendita
        elif ((anaedit._fonteValore == "vendita_iva") or (anaedit._fonteValore == "vendita_senza_iva")):
            anaedit.refresh_combobox_listini()
        if quan:
            anaedit.quantita_entry.set_text(str(quan))
            anaedit._righe[0]["quantita"] = str(quan)
        if not posso("SM") and articolo["quantita_minima"]:
            anaedit.quantita_entry.set_text(str(articolo["quantita_minima"]))
            anaedit._righe[0]["quantita"] = str(articolo["quantita_minima"])

    else:
        anaedit.articolo_entry.set_text('')
        anaedit.descrizione_entry.set_text('')
        anaedit.codice_articolo_fornitore_entry.set_text('')
        anaedit.numero_lotto_entry.set_text("")
        anaedit.data_scadenza_datewidget.set_text('')
        anaedit.data_produzione_datewidget.set_text('')
        anaedit.data_prezzo_datewidget.set_text('')
        anaedit.ordine_minimo_entry.set_text('')
        anaedit.tempo_arrivo_merce_entry.set_text('')
#        anaedit.percentuale_iva_entry.set_text('0')
        anaedit.id_iva_customcombobox.combobox.set_active(-1)
        anaedit.id_multiplo_customcombobox.combobox.clear()
        anaedit.id_listino_customcombobox.combobox.clear()
        anaedit.prezzo_lordo_entry.set_text('0')
        anaedit.quantita_entry.set_text('0')
        anaedit.prezzo_netto_label.set_text('0')
        anaedit.sconti_widget.clearValues()
        anaedit.totale_riga_label.set_text('0')

        anaedit._righe[0]["idArticolo"] = None
        anaedit._righe[0]["codiceArticolo"] = ''
        anaedit._righe[0]["descrizione"] = ''
        anaedit._righe[0]["codiceArticoloFornitore"] = ''
        anaedit._righe[0]["percentualeIva"] = 0
        anaedit._righe[0]["idAliquotaIva"] = None
        anaedit._righe[0]["idUnitaBase"] = None
        anaedit._righe[0]["idMultiplo"] = None
        anaedit._righe[0]["moltiplicatore"] = 1
        anaedit._righe[0]["idListino"] = None
        anaedit._righe[0]["prezzoLordo"] = 0
        anaedit._righe[0]["quantita"] = 0
        anaedit._righe[0]["prezzoNetto"] = 0
        anaedit._righe[0]["divisore_noleggio"] = 0
        anaedit._righe[0]["sconti"] = []
        anaedit._righe[0]["applicazioneSconti"] = 'scalare'
        anaedit._righe[0]["totale"] = 0

    if anaedit._tipoPersonaGiuridica == "cliente":
        if anaedit.ricerca == "codice_a_barre" and setconf("Documenti", "no_ricerca_incrementale") and anaedit.nolottotemp:
            anaedit.lotto_temp_entry.grab_focus()
        else:
            anaedit.id_listino_customcombobox.combobox.grab_focus()
    elif anaedit._tipoPersonaGiuridica == "fornitore":
        anaedit.codice_articolo_fornitore_entry.grab_focus()
    else:
        anaedit.descrizione_entry.grab_focus()