示例#1
0
        public JPK_VAT(int month, int year, ApplicationDbContext _context)
        {
            Naglowek           = new Naglowek(month, year);
            Podmiot            = new Podmiot(_context.Company.FirstOrDefault());
            SprzedazCtrl       = new SprzedazCtrl();
            SprzedazWierszList = new List <SprzedazWiersz>();
            ZakupCtrl          = new ZakupCtrl();
            ZakupWierszList    = new List <ZakupWiersz>();

            int i        = 1;
            var sprzedaz = _context.VATRegisterSell.Include(j => j.Contractor).Where(p => p.Month == month && p.Year == year).OrderBy(p => p.DateOfIssue);

            foreach (VATRegisterSell s in sprzedaz)
            {
                SprzedazWiersz sprzedazWiersz = new SprzedazWiersz()
                {
                    LpSprzedazy      = i,
                    NrKontrahenta    = s.Contractor.NIP,
                    NazwaKontrahenta = s.Contractor.FullName,
                    AdresKontrahenta = s.Contractor.FullAddress,
                    DowodSprzedazy   = s.DocumentNumber,
                    DataWystawienia  = s.DateOfIssue,
                    DataSprzedazy    = s.DeliveryDate,
                    K_19             = Tools.decimalRound((decimal)s.ValueNetto23),
                    K_20             = Tools.decimalRound((decimal)s.VATValue23),
                };

                SprzedazWierszList.Add(sprzedazWiersz);
                SprzedazCtrl.PodatekNalezny += s.VATSummary;
                i++;
            }
            SprzedazCtrl.PodatekNalezny         = Tools.decimalRound(SprzedazCtrl.PodatekNalezny);
            SprzedazCtrl.LiczbaWierszySprzedazy = sprzedaz.Count();

            i = 1;
            var zakupy = _context.VATRegisterBuy.Include(j => j.Contractor).Where(p => p.Month == month && p.Year == year).OrderBy(p => p.DateOfIssue);

            foreach (VATRegisterBuy z in zakupy)
            {
                ZakupWiersz zakupWiersz = new ZakupWiersz()
                {
                    LpZakupu      = i,
                    NrDostawcy    = z.Contractor.NIP,
                    NazwaDostawcy = z.Contractor.FullName,
                    AdresDostawcy = z.Contractor.FullAddress,
                    DowodZakupu   = z.DocumentNumber,
                    DataZakupu    = z.DateOfIssue,
                    DataWplywu    = z.DateOfIssue,
                    K_45          = Tools.decimalRound(z.ValueNetto),
                    K_46          = Tools.decimalRound((decimal)z.TaxDeductibleValue)
                };

                ZakupWierszList.Add(zakupWiersz);
                ZakupCtrl.PodatekNaliczony += (decimal)z.TaxDeductibleValue;
                i++;
            }
            ZakupCtrl.PodatekNaliczony     = Tools.decimalRound(ZakupCtrl.PodatekNaliczony);
            ZakupCtrl.LiczbaWierszyZakupow = zakupy.Count();
        }
示例#2
0
        public string generate()
        {
            XDocument xml  = new XDocument();
            XElement  root = new XElement(tns + "JPK");

            root.Add(new XAttribute(XNamespace.Xmlns + "etd", etd));
            root.Add(new XAttribute(XNamespace.Xmlns + "tns", tns));
            root.Add(new XAttribute(XNamespace.Xmlns + "xsi", xsi));

            XElement naglowek = new XElement(tns + "Naglowek");

            XElement   kodFormularza = new XElement(tns + "KodFormularza", Naglowek.KodFormularza.Wartosc);
            XAttribute kodSystemowy  = new XAttribute("kodSystemowy", Naglowek.KodFormularza.KodSystemowy);
            XAttribute wersjaSchemy  = new XAttribute("wersjaSchemy", Naglowek.KodFormularza.WersjaSchemy);

            kodFormularza.Add(kodSystemowy);
            kodFormularza.Add(wersjaSchemy);
            naglowek.Add(kodFormularza);

            XElement wariantFormularza  = new XElement(tns + "WariantFormularza", Naglowek.WariantFormularza);
            XElement celZlozenia        = new XElement(tns + "CelZlozenia", Naglowek.CelZlozenia);
            XElement dataWytworzeniaJPK = new XElement(tns + "DataWytworzeniaJPK", Naglowek.DataWytworzeniaJPK.ToString("yyyy-MM-ddTHH:mm:ss"));
            XElement dataOd             = new XElement(tns + "DataOd", formatDate(Naglowek.DataOd));
            XElement dataDo             = new XElement(tns + "DataDo", formatDate(Naglowek.DataDo));
            XElement nazwaSystemu       = new XElement(tns + "NazwaSystemu", Naglowek.NazwaSystemu);

            naglowek.Add(wariantFormularza);
            naglowek.Add(celZlozenia);
            naglowek.Add(dataWytworzeniaJPK);
            naglowek.Add(dataOd);
            naglowek.Add(dataDo);
            naglowek.Add(nazwaSystemu);
            root.Add(naglowek);

            XElement podmiot    = new XElement(tns + "Podmiot1");
            XElement nip        = new XElement(tns + "NIP", Podmiot.NIP);
            XElement pelnaNazwa = new XElement(tns + "PelnaNazwa", Podmiot.PelnaNazwa);
            XElement email      = new XElement(tns + "Email", Podmiot.Email);

            podmiot.Add(nip);
            podmiot.Add(pelnaNazwa);
            podmiot.Add(email);
            root.Add(podmiot);

            foreach (SprzedazWiersz s in SprzedazWierszList)
            {
                XElement sprzedazWiersz   = new XElement(tns + "SprzedazWiersz");
                XElement lpSprzedazy      = new XElement(tns + "LpSprzedazy", s.LpSprzedazy);
                XElement nrKontrahenta    = new XElement(tns + "NrKontrahenta", s.NrKontrahenta);
                XElement nazwaKontrahenta = new XElement(tns + "NazwaKontrahenta", s.NazwaKontrahenta);
                XElement adresKontrahenta = new XElement(tns + "AdresKontrahenta", s.AdresKontrahenta);
                XElement dowodSprzedazy   = new XElement(tns + "DowodSprzedazy", s.DowodSprzedazy);
                XElement dataWystawienia  = new XElement(tns + "DataWystawienia", formatDate(s.DataWystawienia));
                XElement dataSprzedazy    = new XElement(tns + "DataSprzedazy", formatDate(s.DataSprzedazy));
                XElement k_19             = new XElement(tns + "K_19", Tools.decimalRound(s.K_19));
                XElement k_20             = new XElement(tns + "K_20", Tools.decimalRound(s.K_20));

                sprzedazWiersz.Add(lpSprzedazy);
                sprzedazWiersz.Add(nrKontrahenta);
                sprzedazWiersz.Add(nazwaKontrahenta);
                sprzedazWiersz.Add(adresKontrahenta);
                sprzedazWiersz.Add(dowodSprzedazy);
                sprzedazWiersz.Add(dataWystawienia);
                sprzedazWiersz.Add(dataSprzedazy);
                sprzedazWiersz.Add(k_19);
                sprzedazWiersz.Add(k_20);
                root.Add(sprzedazWiersz);
            }
            XElement sprzedazCtrl           = new XElement(tns + "SprzedazCtrl");
            XElement liczbaWierszySprzedazy = new XElement(tns + "LiczbaWierszySprzedazy", SprzedazCtrl.LiczbaWierszySprzedazy);
            XElement podatekNalezny         = new XElement(tns + "PodatekNalezny", SprzedazCtrl.PodatekNalezny);

            sprzedazCtrl.Add(liczbaWierszySprzedazy);
            sprzedazCtrl.Add(podatekNalezny);
            root.Add(sprzedazCtrl);

            foreach (ZakupWiersz z in ZakupWierszList)
            {
                XElement zakupWiersz   = new XElement(tns + "ZakupWiersz");
                XElement lpZakupu      = new XElement(tns + "LpZakupu", z.LpZakupu);
                XElement nrDostawcy    = new XElement(tns + "NrDostawcy", z.NrDostawcy);
                XElement nazwaDostawcy = new XElement(tns + "NazwaDostawcy", z.NazwaDostawcy);
                XElement adresDostawcy = new XElement(tns + "AdresDostawcy", z.AdresDostawcy);
                XElement dowodZakupu   = new XElement(tns + "DowodZakupu", z.DowodZakupu);
                XElement dataZakupu    = new XElement(tns + "DataZakupu", formatDate(z.DataZakupu));
                XElement dataWplywu    = new XElement(tns + "DataWplywu", formatDate(z.DataWplywu));
                XElement k_45          = new XElement(tns + "K_45", z.K_45);
                XElement k_46          = new XElement(tns + "K_46", z.K_46);

                zakupWiersz.Add(lpZakupu);
                zakupWiersz.Add(nrDostawcy);
                zakupWiersz.Add(nazwaDostawcy);
                zakupWiersz.Add(adresDostawcy);
                zakupWiersz.Add(dowodZakupu);
                zakupWiersz.Add(dataZakupu);
                zakupWiersz.Add(dataWplywu);
                zakupWiersz.Add(k_45);
                zakupWiersz.Add(k_46);
                root.Add(zakupWiersz);
            }
            XElement zakupCtrl           = new XElement(tns + "ZakupCtrl");
            XElement liczbaWierszyZakupu = new XElement(tns + "LiczbaWierszyZakupow", ZakupCtrl.LiczbaWierszyZakupow);
            XElement podatekNaliczony    = new XElement(tns + "PodatekNaliczony", ZakupCtrl.PodatekNaliczony);

            zakupCtrl.Add(liczbaWierszyZakupu);
            zakupCtrl.Add(podatekNaliczony);
            root.Add(zakupCtrl);

            xml.Add(root);

            string time     = DateTime.Now.ToFileTime().ToString();
            string filename = Tools.getHash(xml.ToString() + time) + ".xml";

            xml.Save("tmp/" + filename);

            return(filename);
        }