Ejemplo n.º 1
0
Archivo: FiFo.cs Proyecto: haegen/zeug
        public void CalcAusgleichsdatumNachBelegNr()
        {
            DateTime SollBelegDat;
            DateTime HabenFaelDat;
            decimal? sollValue  = null;
            decimal? habenValue = null;

            for (int i = 2; i <= lastRow; i++)
            {
                habenValue = Convert.ToDecimal(sheet.Cells[i, colHaben].Value);
                if (habenValue != null && habenValue > 0)
                {
                    double dateHaben = ((Excel.Range)sheet.Cells[i, colFaelDat]).Value2;
                    HabenFaelDat = DateTime.FromOADate(dateHaben);
                    var      BelegNrHaben = ((Excel.Range)sheet.Cells[i, colBelegNr]).Value2;
                    TimeSpan diff;

                    for (int j = 2; j < lastRow; j++)
                    {
                        var BelegNrSoll = ((Excel.Range)sheet.Cells[j, colBelegNr]).Value2;
                        sollValue = Convert.ToDecimal(sheet.Cells[j, colSoll].Value);
                        if (BelegNrHaben == BelegNrSoll && sollValue != null && sollValue == habenValue)
                        {
                            double dateSoll = ((Excel.Range)sheet.Cells[j, colFaelDat]).Value2;
                            SollBelegDat = DateTime.FromOADate(dateSoll);
                            diff         = SollBelegDat.Subtract(HabenFaelDat);
                            sheet.Cells[i, lastCol].Value2 = diff.TotalDays.ToString();
                        }
                        else
                        {
                            continue;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
Archivo: FiFo.cs Proyecto: haegen/zeug
        public void CalcAusgleichsdatumNachFaelligkeitFiFo()
        {
            //int lastRow = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
            //int newCol = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Column + 1;
            int      countHaben    = 2;
            int      countHabenOld = 0;
            DateTime SollBelegDat;
            DateTime HabenFaelDat;
            decimal? sollValue  = null;
            decimal? habenValue = null;

            for (int i = 2; i <= lastRow; i++)
            {
                sollValue = Convert.ToDecimal(sheet.Cells[i, colSoll].Value);
                if (sollValue != null && sollValue > 0)
                {
                    double dateSoll = ((Excel.Range)sheet.Cells[i, colBuDat]).Value2;
                    SollBelegDat = DateTime.FromOADate(dateSoll);
                    TimeSpan diff;
                    while (sollValue > 0)
                    {
                        if (countHaben > countHabenOld)
                        {
                            var test = sheet.Cells[countHaben, colHaben].Value2;
                            habenValue    = (decimal?)sheet.Cells[countHaben, colHaben].Value2;
                            countHabenOld = countHaben;
                        }
                        if (habenValue != null)
                        {
                            if (habenValue != 0)
                            {
                                if (habenValue < 0)
                                {
                                    sollValue -= habenValue;
                                    countHaben++;
                                    continue;
                                }
                                double dateHaben = ((Excel.Range)sheet.Cells[countHaben, colFaelDat]).Value2;
                                HabenFaelDat = DateTime.FromOADate(dateHaben);
                                decimal?tempDiff = sollValue - habenValue;
                                if (tempDiff >= 0)
                                {
                                    diff = SollBelegDat.Subtract(HabenFaelDat);
                                    sheet.Cells[countHaben, lastCol].Value2 = diff.TotalDays.ToString();
                                    sollValue -= habenValue;
                                }
                                else
                                {
                                    habenValue -= sollValue;
                                    break;
                                }
                            }
                            //else if(habenValue < 0)
                            //{
                            //    sollValue += (habenValue * -1);
                            //}
                        }
                        countHaben++;
                    }
                }
            }

            //SollWert ermitteln
            //Belegdatum festschreiben
            //Habenwert abziehen
            //soll wert größer 0
            //belegdatum vom faelligkeitsdatum abziehen
            //nächsten haben wert ermitteln
            //haben wert abziehen
            //soll wert gleich 0 und haben wert größer 0
            //nächsten soll wert ermitteln
            //neues belegdatum festschreiben
            //haben wert abziehen
            //soll wert gleich 0 und haben wert gleich 0
            //nächsten soll wert ermitteln
            //belegdatum festschreiben
            //nächsten haben wert ermitteln
            //soll wert gleich 0 oder kleiner 0 und haben wert größer 0
            //nächsten soll wert ermitteln
            //belegdatum schreiben
            //haben wert abziehen
        }