예제 #1
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static decimal GetMargineOperativo(SALDto sal, CommessaDto commessa)
 {
     try
     {
         if (commessa != null)
         {
             decimal margineOperativo = 0;
             var     statoCommessa    = commessa.Stato;
             if (statoCommessa == Tipi.StatoCommessa.Chiusa.ToString())
             {
                 var importoLavori         = UtilityValidation.GetDecimal(commessa.Importo);
                 var totaleFattureAcquisto = UtilityValidation.GetDecimal(sal.TotaleFattureAcquisto);
                 margineOperativo = importoLavori - totaleFattureAcquisto;
             }
             else
             {
                 var data = UtilityValidation.GetData(sal.Data);
                 margineOperativo = GetMargineOperativo(commessa, data);
             }
             return(margineOperativo);
         }
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(0);
 }
예제 #2
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static decimal GetTotaleIncassi(SALDto sal, CommessaDto commessa)
 {
     try
     {
         if (commessa != null)
         {
             decimal totale        = 0;
             var     statoCommessa = commessa.Stato;
             if (statoCommessa == Tipi.StatoCommessa.Chiusa.ToString())
             {
                 totale = UtilityValidation.GetDecimal(sal.TotaleIncassi);
             }
             else
             {
                 var data        = UtilityValidation.GetData(sal.Data);
                 var committenti = commessa.Committentes;
                 totale = GetTotaleIncassi(committenti, data);
             }
             return(totale);
         }
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(0);
 }
예제 #3
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static decimal GetTotaleFattureAcquisto(SALDto sal, CommessaDto commessa)
 {
     try
     {
         if (commessa != null)
         {
             decimal totale        = 0;
             var     statoCommessa = commessa.Stato;
             if (statoCommessa == Tipi.StatoCommessa.Chiusa.ToString())
             {
                 totale = UtilityValidation.GetDecimal(sal.TotaleFattureAcquisto);
             }
             else
             {
                 var data      = UtilityValidation.GetData(sal.Data);
                 var fornitori = commessa.Fornitores;
                 totale = GetTotaleFattureAcquisto(fornitori, data);
             }
             return(totale);
         }
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(0);
 }
예제 #4
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static string GetStatoDescrizione(SALDto sal, CommessaDto commessa)
 {
     try
     {
         var statoDescrizione = "N/D";
         if (sal != null)
         {
             if (commessa != null)
             {
                 var statoCommessa = commessa.Stato;
                 if (statoCommessa == Tipi.StatoCommessa.Chiusa.ToString())
                 {
                     statoDescrizione = sal.Stato;
                 }
                 else
                 {
                     var data              = UtilityValidation.GetData(sal.Data);
                     var importoLavori     = UtilityValidation.GetDecimal(commessa.Importo);
                     var margine           = UtilityValidation.GetDecimal(commessa.Margine);
                     var margineOperativo  = GetMargineOperativo(commessa, data);
                     var statoSAL          = GetStato(commessa, data);
                     var _statoDescrizione = GetStatoDescrizione(importoLavori, margine, margineOperativo, statoSAL);
                     statoDescrizione = _statoDescrizione.ToString();
                 }
             }
         }
         return(statoDescrizione);
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(null);
 }
예제 #5
0
        private void BindViewTotali(SALDto obj)
        {
            try
            {
                if (obj != null)
                {
                    var viewModel = new Commessa.CommessaViewModel();
                    var commessa  = viewModel.ReadCommessa(obj);
                    if (commessa != null)
                    {
                        var data = UtilityValidation.GetData(editData.Value);

                        var fornitori   = commessa.Fornitores;
                        var committenti = commessa.Committentes;

                        var totaleFattureAcquisto = BusinessLogic.SAL.GetTotaleFattureAcquisto(fornitori, data);
                        var totaleFattureVendita  = BusinessLogic.SAL.GetTotaleFattureVendita(committenti, data);
                        var totalePagamenti       = BusinessLogic.SAL.GetTotalePagamenti(fornitori, data);
                        var totaleIncassi         = BusinessLogic.SAL.GetTotaleIncassi(committenti, data);
                        var statoDescrizione      = BusinessLogic.SAL.GetStatoDescrizione(obj, commessa);

                        editStato.Value = statoDescrizione;
                        editTotaleFattureAcquisto.Value = totaleFattureAcquisto;
                        editTotaleFattureVendita.Value  = totaleFattureVendita;
                        editTotalePagamenti.Value       = totalePagamenti;
                        editTotaleIncassi.Value         = totaleIncassi;
                    }
                }
            }
            catch (Exception ex)
            {
                UtilityError.Write(ex);
            }
        }
예제 #6
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static string GetDenominazione(SALDto sal, CommessaDto commessa)
 {
     try
     {
         var denominazione = "SAL " + GetCodifica(sal) + " | COMMESSA " + BusinessLogic.Commessa.GetCodifica(commessa);
         return(denominazione);
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(null);
 }
예제 #7
0
 public CommessaDto ReadCommessa(SALDto sal)
 {
     try
     {
         var wcf        = new WcfService.Service();
         var commessaId = sal.CommessaId;
         var obj        = wcf.ReadCommessa(commessaId, true);
         return(obj);
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(null);
 }
예제 #8
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static string GetCodifica(SALDto sal)
 {
     try
     {
         if (sal != null)
         {
             string codfica = "SAL " + sal.Codice + " DEL " + UtilityValidation.GetDataND(sal.Data);
             return(codfica);
         }
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(null);
 }
예제 #9
0
파일: SAL.cs 프로젝트: es-dev/cantieri
 public static string GetDenominazione(string codice, DateTime data, CommessaDto commessa)
 {
     try
     {
         var sal = new SALDto()
         {
             Codice = codice, Data = data
         };
         var denominazione = GetDenominazione(sal, commessa);
         return(denominazione);
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(null);
 }
예제 #10
0
        private void CheckSALs()
        {
            try
            {
                AddLog("Check stato avanzamento lavori per le commesse di lavorazione... ", "OK");
                var wcf      = new WcfService.Service();
                var stati    = BusinessLogic.Tipi.GetStatiCommesseInLavorazione();
                var commesse = wcf.ReadCommesse(stati);
                if (commesse != null)
                {
                    foreach (var commessa in commesse)
                    {
                        var lastSal = (from q in commessa.SALs orderby q.Id descending select q).Take(1).FirstOrDefault();
                        if (lastSal == null || IsTimeoutSal(lastSal))
                        {
                            var sal = new SALDto();
                            sal.CommessaId            = commessa.Id;
                            sal.Codice                = BusinessLogic.SAL.GetNewCodice(commessa);
                            sal.Data                  = DateTime.Now;
                            sal.Denominazione         = BusinessLogic.SAL.GetDenominazione(sal, commessa);;
                            sal.Note                  = "SAL CREATO CON PROCEDURA AUTOMATICA";
                            sal.TotaleFattureAcquisto = BusinessLogic.SAL.GetTotaleFattureAcquisto(sal, commessa);
                            sal.TotaleFattureVendita  = BusinessLogic.SAL.GetTotaleFattureVendita(sal, commessa);
                            sal.TotaleIncassi         = BusinessLogic.SAL.GetTotaleIncassi(sal, commessa);
                            sal.TotalePagamenti       = BusinessLogic.SAL.GetTotalePagamenti(sal, commessa);
                            sal.Stato                 = BusinessLogic.SAL.GetStatoDescrizione(sal, commessa);

                            var newSal = wcf.CreateSAL(sal);
                            if (newSal != null)
                            {
                                AddLog("Creazione SAL per la commessa " + BusinessLogic.Commessa.GetCodifica(commessa) + "... ", "OK");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                UtilityError.Write(ex);
            }
        }
예제 #11
0
 private bool IsTimeoutSal(SALDto sal)
 {
     try
     {
         if (sal != null)
         {
             int timeout = 7; //in giorni --> da parametrizzare in tabella impostazioni
             var data    = UtilityValidation.GetData(sal.Data);
             var now     = DateTime.Now;
             var elapsed = now.Subtract(data).TotalDays;
             if (elapsed >= timeout)
             {
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         UtilityError.Write(ex);
     }
     return(false);
 }