/// <summary> /// Erstellt einen Abmeldeauftrag. /// </summary> /// <param name="userId">Id des Benutzers, der den Auftrag anlegt.</param> /// <param name="customerId">Id des Kunden.</param> /// <param name="vehicleId">Id des Fahrzeugs.</param> /// <param name="registrationId">Id der Zulassung.</param> /// <param name="locationId">Id des Kundenstandorts.</param> /// <param name="dbContext">Datenbankkontext für die Transaktion.</param> /// <returns>Den neuen Abmeldeauftrag.</returns> /// <remarks>Erstellt auch gleichzeitig den Order-Datensatz.</remarks> public static DeregistrationOrder CreateDeregistrationOrder(int userId, int customerId, Vehicle vehicle, Registration registration, int? locationId, int zulassungsstelleId, DataClasses1DataContext dbContext) { var orderTypeId = dbContext.OrderType.Single(q => q.Id == (int)OrderTypes.Cancellation).Id; Order order = Order.CreateOrder(userId, customerId, orderTypeId, zulassungsstelleId, dbContext); order.LocationId = locationId; DeregistrationOrder deregistrationOrder = new DeregistrationOrder() { Order = order, Vehicle = vehicle, Registration = registration }; dbContext.DeregistrationOrder.InsertOnSubmit(deregistrationOrder); dbContext.SubmitChanges(); dbContext.WriteLogItem("Abmeldeauftrag angelegt.", LogTypes.INSERT, deregistrationOrder.OrderNumber, "DeregistrationOrder", vehicle.Id); return deregistrationOrder; }
/// <summary> /// Erstellt eine neue Zulassung. /// </summary> /// <param name="carOwnerId">Id des Halters.</param> /// <param name="vehicleId">Id des Fahrzeugs.</param> /// <param name="licencenumber">Kennzeichen für die Zulassung.</param> /// <param name="evbNumber">eVB-Nummer der Fahrzeugversicherung.</param> /// <param name="generalInspectionDate">Datum der Hauptuntersuchung (HU).</param> /// <param name="registrationDate">Zulassungsdatum.</param> /// <param name="registrationDocumentNumber">Fahrzeugbriefnummer, falls vorhanden.</param> /// <param name="dbContext">Datenbankkontext für die Transaktion.</param> /// <returns>Die neue Zulassung.</returns> public static Registration CreateRegistration(CarOwner carOwner, Vehicle vehicle, string licencenumber, string evbNumber, DateTime? generalInspectionDate, DateTime? registrationDate, string registrationDocumentNumber, string emissionCode, DataClasses1DataContext dbContext) { Registration registration = new Registration() { Vehicle = vehicle, CarOwner = carOwner, Licencenumber = licencenumber, GeneralInspectionDate = generalInspectionDate, RegistrationDate = registrationDate, RegistrationDocumentNumber = registrationDocumentNumber, eVBNumber = evbNumber, EmissionCode = emissionCode }; dbContext.Registration.InsertOnSubmit(registration); dbContext.SubmitChanges(); dbContext.WriteLogItem("Zulassung wurde angelegt.", LogTypes.INSERT, registration.Id, "Registration", vehicle.Id); return registration; }
/// <summary> /// Erstellt ein neues Fahrzeug. /// </summary> /// <param name="vin">Fahrgestellnummer des Fahrzeugs.</param> /// <param name="hsn">HSN des Fahrzeugs..</param> /// <param name="tsn">TSN des Fahrzeugs..</param> /// <param name="variant">Variante / Edition des Fahrzeugs.</param> /// <param name="firstRegistrationDate">Erstzulassungsdatum.</param> /// <param name="colorCode">Farbcode.</param> /// <param name="dbContext">Datenbankkontext für die Transaktion.</param> /// <returns>Das neue Fahrzeug.</returns> public static Vehicle CreateVehicle(string vin, string hsn, string tsn, string variant, DateTime? firstRegistrationDate, int? colorCode, DataClasses1DataContext dbContext) { if (string.IsNullOrEmpty(vin)) { ////throw new Exception("Fehler beim Anlegen des Fahrzeugs: Die FIN darf nicht leer sein."); } else if (vin.Length != 17 && vin.Length != 8) { throw new Exception("Fehler beim Anlegen des Fahrzeugs: Die FIN muss 8- oder 17-stellig sein."); } if (string.IsNullOrEmpty(hsn)) { ////throw new Exception("Fehler beim Anlegen des Fahrzeugs: Der Herstellerschlüssel (HSN) darf nicht leer sein."); } if (string.IsNullOrEmpty(tsn)) { ////throw new Exception("Fehler beim Anlegen des Fahrzeugs: Der Typschlüssel (TSN) darf nicht leer sein."); } Vehicle vehicle = new Vehicle() { VIN = vin, HSN = hsn, TSN = tsn, Variant = variant, ColorCode = colorCode, FirstRegistrationDate = firstRegistrationDate }; dbContext.Vehicle.InsertOnSubmit(vehicle); dbContext.SubmitChanges(); dbContext.WriteLogItem("Fahrzeug " + vin + " angelegt.", LogTypes.INSERT, vehicle.Id, "Vehicle"); return vehicle; }
partial void DeleteVehicle(Vehicle instance);
partial void UpdateVehicle(Vehicle instance);
partial void InsertVehicle(Vehicle instance);
private static void CreateReadmission(ReadmissionWiederzulassung wiederzulassung, Vehicle car, DataClasses1DataContext dbContext) { if (wiederzulassung.Header.ProductCostCenterList.Length > 0) { string myIban = ""; if (String.IsNullOrEmpty(wiederzulassung.Bank.Iban)) myIban = generateIban(wiederzulassung.Bank.AccountNumber, wiederzulassung.Bank.BankCode); else myIban = wiederzulassung.Bank.Iban; //wird geprüft ob die Farbe nur Digit ist int myColor = 0; bool colorIsDigit = false; if (!String.IsNullOrEmpty(wiederzulassung.Vehicle.ColorCode)) { foreach (char a in wiederzulassung.Vehicle.ColorCode) { if (Char.IsDigit(a)) colorIsDigit = true; else colorIsDigit = false; } } if (colorIsDigit) myColor = Convert.ToInt32(wiederzulassung.Vehicle.ColorCode); if (car == null) { car = Vehicle.CreateVehicle(wiederzulassung.Vehicle.VIN, wiederzulassung.Vehicle.HSN, wiederzulassung.Vehicle.TSN, wiederzulassung.Vehicle.VehicleVariant, wiederzulassung.Vehicle.RegistrationDate, myColor, dbContext); } var newAdress = Adress.CreateAdress(wiederzulassung.CarOwnerAdress.Street, wiederzulassung.CarOwnerAdress.Streetnumber, wiederzulassung.CarOwnerAdress.Zipcode, wiederzulassung.CarOwnerAdress.City, wiederzulassung.CarOwnerAdress.Country, dbContext); var newContact = Contact.CreateContact(wiederzulassung.CarOwnerContact.Phone, wiederzulassung.CarOwnerContact.Fax, wiederzulassung.CarOwnerContact.MobilePhone, wiederzulassung.CarOwnerContact.Email, dbContext); var newBankAccount = BankAccount.CreateBankAccount(dbContext, wiederzulassung.Bank.CarOwnerBankName, wiederzulassung.Bank.AccountNumber, wiederzulassung.Bank.BankCode, myIban, wiederzulassung.Bank.Bic); var newCarOwner = CarOwner.CreateCarOwner(wiederzulassung.CarOwnerPersonal.Name, wiederzulassung.CarOwnerPersonal.Firstname, newBankAccount.Id, newContact.Id, newAdress.Id, dbContext); var newRegistration = KVSCommon.Database.Registration.CreateRegistration(newCarOwner.Id, car.Id, wiederzulassung.Vehicle.LicenceNumber, wiederzulassung.Vehicle.eVBNumber, wiederzulassung.Vehicle.GeneralInspectionDate, null, wiederzulassung.Vehicle.RegistrationDocumentNumber, wiederzulassung.Vehicle.EmissionCode, dbContext); Price price = findPrice(wiederzulassung.Header); var newRegistrationOrder = RegistrationOrder.CreateRegistrationOrder(currentUserId, new Guid(wiederzulassung.Header.CustomerId), wiederzulassung.Vehicle.LicenceNumber, wiederzulassung.Vehicle.PreviousLicenceNumber, wiederzulassung.Vehicle.eVBNumber, car.Id, newRegistration.Id, new Guid(RegTypes.Wiederzulassung), new Guid(wiederzulassung.Header.LocationId), new Guid (wiederzulassung.Header.ZulassungsstelleId), dbContext); newRegistrationOrder.Order.FreeText = wiederzulassung.FreetextField; // add first product and costcenter var newOrderItem1 = newRegistrationOrder.Order.AddOrderItem(new Guid(wiederzulassung.Header.ProductCostCenterList[0].ProductId), price.Amount, 1, new Guid(wiederzulassung.Header.ProductCostCenterList[0].CostCenterId), null, false, dbContext); if (price.AuthorativeCharge.HasValue) { var newOrderItem2 = newRegistrationOrder.Order.AddOrderItem(new Guid(wiederzulassung.Header.ProductCostCenterList[0].ProductId), price.AuthorativeCharge.Value, 1, new Guid(wiederzulassung.Header.ProductCostCenterList[0].CostCenterId), newOrderItem1.Id, true, dbContext); } dbContext.SubmitChanges(); //add all other products AddAnotherProducts(newRegistrationOrder, new Guid(wiederzulassung.Header.LocationId), wiederzulassung.Header, currentUserId); car.CurrentRegistrationId = newRegistration.Id; dbContext.SubmitChanges(); } else { throw new Exception("Dienstleistung / Kostenstellen sind nicht miteingegeben!"); } }